X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fhungarian.c;h=05910a9010090fc96b4a3d2c573adb760616689f;hb=df75a3eefb7701a3e44b4d5718da95fb250512b8;hp=19ce38665076befb7f18b8b0c513f1ade605e663;hpb=b1562190f073db4e4db8917798adc20b207a38c0;p=libfirm diff --git a/ir/adt/hungarian.c b/ir/adt/hungarian.c index 19ce38665..05910a901 100644 --- a/ir/adt/hungarian.c +++ b/ir/adt/hungarian.c @@ -24,7 +24,14 @@ ******************************************************************** ********************************************************************/ -/* $Id$ */ +/** + * @file + * @brief Solving the Minimum Assignment Problem using the Hungarian Method. + * @version $Id$ + */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif #include #include @@ -84,7 +91,7 @@ hungarian_problem_t *hungarian_new(int rows, int cols, int width, int match_type int i; hungarian_problem_t *p = xmalloc(sizeof(*p)); - memset(p, 0, sizeof(p)); + memset(p, 0, sizeof(p[0])); FIRM_DBG_REGISTER(p->dbg, "firm.hungarian"); @@ -148,6 +155,7 @@ void hungarian_prepare_cost_matrix(hungarian_problem_t *p, int mode) { void hungarian_add(hungarian_problem_t *p, int left, int right, int cost) { assert(p->num_rows > left && "Invalid row selected."); assert(p->num_cols > right && "Invalid column selected."); + assert(cost >= 0); p->cost[left][right] = cost; p->max_cost = MAX(p->max_cost, cost);