X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fgfxpoly%2Fpoly.c;h=eb1b6b1b70947742597c257f315d3f8e3ceb4020;hb=2c719855eac434f01d47ba0717d76de65939d74e;hp=efb51fe656e2038c07d975e67eab5e9e81fc9c51;hpb=2cdbdbb4012575119c1a92e9c4662df9f4e81737;p=swftools.git diff --git a/lib/gfxpoly/poly.c b/lib/gfxpoly/poly.c index efb51fe..eb1b6b1 100644 --- a/lib/gfxpoly/poly.c +++ b/lib/gfxpoly/poly.c @@ -19,7 +19,7 @@ void gfxpoly_fail(char*expr, char*file, int line, const char*function) exit(1); } - void*md5 = init_md5(); + void*md5 = initialize_md5(); int s,t; gfxpolystroke_t*stroke = current_polygon->strokes; @@ -167,6 +167,7 @@ int gfxpoly_size(gfxpoly_t*poly) char gfxpoly_check(gfxpoly_t*poly) { + current_polygon = poly; dict_t*d = dict_new2(&point_type); int s,t; gfxpolystroke_t*stroke = poly->strokes; @@ -200,10 +201,10 @@ void gfxpoly_dump(gfxpoly_t*poly) { int s,t; double g = poly->gridsize; - fprintf(stderr, "polyon %08x (gridsize: %f)\n", poly, poly->gridsize); + fprintf(stderr, "polyon %08x (gridsize: %f)\n", (int)poly, poly->gridsize); gfxpolystroke_t*stroke = poly->strokes; for(;stroke;stroke=stroke->next) { - fprintf(stderr, "%08x", stroke); + fprintf(stderr, "%08x", (int)stroke); for(s=0;snum_points-1;s++) { point_t a = stroke->points[s]; point_t b = stroke->points[s+1]; @@ -259,8 +260,8 @@ static void event_dump(event_t*e) } } -static inline max32(int32_t v1, int32_t v2) {return v1>v2?v1:v2;} -static inline min32(int32_t v1, int32_t v2) {return v1v2?v1:v2;} +static inline int32_t min32(int32_t v1, int32_t v2) {return v1nr = segment_count++; #ifdef CHECKS + /* notice: on some systems (with some compilers), for the line + (1073741823,-1073741824)->(1073741823,1073741823) + we get LINE_EQ(s->a, s) == 1. + That's why we now clamp to 26 bit. + */ assert(LINE_EQ(s->a, s) == 0); assert(LINE_EQ(s->b, s) == 0);