git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added .bbox method to glyph in ruby interface
[swftools.git]
/
lib
/
gfxpoly
/
poly.c
diff --git
a/lib/gfxpoly/poly.c
b/lib/gfxpoly/poly.c
index
72d5ab1
..
95a8a22
100644
(file)
--- a/
lib/gfxpoly/poly.c
+++ b/
lib/gfxpoly/poly.c
@@
-3,7
+3,6
@@
#include <math.h>
#include "../mem.h"
#include "../types.h"
#include <math.h>
#include "../mem.h"
#include "../types.h"
-#include "../q.h"
#include "../MD5.h"
#include "poly.h"
#include "active.h"
#include "../MD5.h"
#include "poly.h"
#include "active.h"
@@
-20,7
+19,7
@@
void gfxpoly_fail(char*expr, char*file, int line, const char*function)
exit(1);
}
exit(1);
}
- void*md5 = init_md5();
+ void*md5 = initialize_md5();
int s,t;
gfxpolystroke_t*stroke = current_polygon->strokes;
int s,t;
gfxpolystroke_t*stroke = current_polygon->strokes;
@@
-69,7
+68,7
@@
static void point_free(void*o)
p->y = 0;
free(p);
}
p->y = 0;
free(p);
}
-static type_t point_type = {
+type_t point_type = {
equals: point_equals,
hash: point_hash,
dup: point_dup,
equals: point_equals,
hash: point_hash,
dup: point_dup,
@@
-168,6
+167,7
@@
int gfxpoly_size(gfxpoly_t*poly)
char gfxpoly_check(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;
dict_t*d = dict_new2(&point_type);
int s,t;
gfxpolystroke_t*stroke = poly->strokes;
@@
-305,6
+305,11
@@
static void segment_init(segment_t*s, int32_t x1, int32_t y1, int32_t x2, int32_
s->nr = segment_count++;
#ifdef CHECKS
s->nr = 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);
assert(LINE_EQ(s->a, s) == 0);
assert(LINE_EQ(s->b, s) == 0);