fixed mem leaks
[swftools.git] / lib / pdf / bbox.c
index 62d0839..1f24567 100644 (file)
@@ -118,6 +118,7 @@ static void head_delete(context_t*context, head_t*h)
        assert(!h->prev);
        context->heads = h->next;
     }
+    free(h);
 }
 
 #define POINTS_TO_HEAD(ptr) (((head_t*)(ptr))->magic==HEAD_MAGIC)
@@ -347,17 +348,26 @@ static void fix_small_boxes(context_t*context)
        while(h) {
            head_t*next = h->next;
            if(!h->seen) {
-               if(h->bbox.xmax - h->bbox.ymin < 16
-               && h->bbox.ymax - h->bbox.ymin < 16) {
+               if(h->bbox.xmax - h->bbox.xmin < 32
+               || h->bbox.ymax - h->bbox.ymin < 32) {
                    head_t*other = search_vicinity(context, h, 64, costab, sintab);
                    if(other) {
                        merge(context, h->pos, other->pos);
                        changed = 1;
                        break;
                    } else {
+                       //printf("nothing in the vicinity of %d,%d,%d,%d\n", h->bbox);
                        h->seen = 1;
                    }
-               }
+               } /*else {
+                   printf("area %d,%d,%d,%d is large enough (%dx%d)\n", 
+                           h->bbox.xmin,
+                           h->bbox.ymin,
+                           h->bbox.xmax,
+                           h->bbox.ymax,
+                           h->bbox.xmax - h->bbox.xmin,
+                           h->bbox.ymax - h->bbox.ymin);
+               } */
            }
            h = next;
        }