[jbig2-cvs] rev 383 - trunk

giles at ghostscript.com giles at ghostscript.com
Mon Jan 3 20:41:56 PST 2005


Author: giles
Date: 2005-01-03 20:41:56 -0800 (Mon, 03 Jan 2005)
New Revision: 383

Modified:
   trunk/jbig2_metadata.c
Log:
Properly free tag and value strings from inside the metadata struct. We 
now assume we own those pointers, which is fine if jbig2_metadata_add() 
is used to construct them.


Modified: trunk/jbig2_metadata.c
===================================================================
--- trunk/jbig2_metadata.c	2005-01-04 04:40:18 UTC (rev 382)
+++ trunk/jbig2_metadata.c	2005-01-04 04:41:56 UTC (rev 383)
@@ -49,8 +49,19 @@
 
 void jbig2_metadata_free(Jbig2Ctx *ctx, Jbig2Metadata *md)
 {
-    if (md->keys) jbig2_free(ctx->allocator, md->keys);
-    if (md->values) jbig2_free(ctx->allocator, md->values);
+    int i;
+
+    if (md->keys) {
+      /* assume we own the pointers */
+      for (i = 0; i < md->entries; i++)
+        jbig2_free(ctx->allocator, md->keys[i]);
+      jbig2_free(ctx->allocator, md->keys);
+    }
+    if (md->values) {
+      for (i = 0; i < md->entries; i++)
+        jbig2_free(ctx->allocator, md->values[i]);
+      jbig2_free(ctx->allocator, md->values);
+    }
     jbig2_free(ctx->allocator, md);
 }
 



More information about the jbig2-cvs mailing list