pdf-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pdf-devel] Patch for FS#56 (second try)


From: gerel
Subject: [pdf-devel] Patch for FS#56 (second try)
Date: Mon, 21 Jul 2008 10:30:04 -0700 (PDT)

Sorry I forgot to modify the ref manual.

Here it's again.

##

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: address@hidden
# target_branch: file:///home/gerel/PROJECTS/libgnupdf/trunk/
# testament_sha1: cc0037ad5f628df76001ae5e1ef36d307547424b
# timestamp: 2008-07-21 14:15:38 -0300
# base_revision_id: address@hidden
# 
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog   2008-07-20 22:06:45 +0000
+++ ChangeLog   2008-07-21 17:15:33 +0000
@@ -1,3 +1,27 @@
+2008-07-21  gerel  <address@hidden>
+
+       * src/base/pdf-hash.c: changed API to allow the specification of
+       memory disposal functions in entry insertion time.
+       
+       * src/base/pdf-hash.h: same.
+
+       * src/base/pdf-fsys.c: fixed to conform API modifications.
+       
+       * torture/unit/base/hash/pdf-hash-add.c: same.
+       
+       * torture/unit/base/hash/pdf-hash-iterator-next.c: same.
+       
+       * torture/unit/base/hash/pdf-hash-key-p.c: same.
+       
+       * torture/unit/base/hash/pdf-hash-remove.c: same.
+       
+       * torture/unit/base/hash/pdf-hash-rename.c: same.
+       
+       * torture/unit/base/hash/pdf-hash-search.c: same.
+
+       * doc/gnupdf.texi: same.
+
+
 2008-07-21  Jose E. Marchesi  <address@hidden>
 
        * doc/gnupdf-manual-wiki.init (mediawiki_preformatted): Fix a bug

=== modified file 'doc/gnupdf.texi'
--- doc/gnupdf.texi     2008-07-10 16:17:18 +0000
+++ doc/gnupdf.texi     2008-07-21 17:15:33 +0000
@@ -1424,7 +1424,7 @@
 @node Adding and removing elements
 @subsection Adding and removing elements
 
address@hidden pdf_status_t pdf_hash_add (pdf_hash_t @var{table}, const char 
@var{*key}, const void @var{*element}) 
address@hidden pdf_status_t pdf_hash_add (pdf_hash_t @var{table}, const char 
@var{*key}, const void @var{*element}, pdf_hash_element_dispose_fn_t 
@var{disp_fn} ) 
 
 Adds the element @var{element} with the associated key @var{key} to 
@var{table}. If @var{key} already exists nothing is done.
 
@@ -1437,6 +1437,8 @@
 A valid key string.
 @item element
 A pointer to the element being added.
address@hidden disp_fn
+The function called when @var{element} is removed, can be NULL.
 @end table
 @item Returns
 A pdf status value:

=== modified file 'src/base/pdf-fsys.c'
--- src/base/pdf-fsys.c 2008-06-17 18:24:43 +0000
+++ src/base/pdf-fsys.c 2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-06-17 13:12:16 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:49:18 gerel"
  *
  *       File:         pdf-fsys.c
  *       Date:         Thu May 22 15:51:13 2008
@@ -209,57 +209,57 @@
   *version_minor = item_props.version_minor;
 
   /* Associate values with hash keys */
-  if (pdf_hash_add (props_hash, "isHidden", (void *) is_hidden) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "isReadOnly", (void *) is_read_only) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "isCheckedOut", (void *) is_checked_out) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "isPublished", (void *) is_published) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "fileSizeHigh", (void *) file_size_high) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "fileSizeLow", (void *) file_size_low) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "folderSize", (void *) folder_size) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "creatorCode", (void *) creator_code) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "typeCode", (void *) type_code) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "versionMajor", (void *) version_major) !=
-      PDF_OK)
-    {
-      return PDF_ERROR;
-    }
-  if (pdf_hash_add (props_hash, "versionMinor", (void *) version_minor) !=
+  if (pdf_hash_add (props_hash, "isHidden", (void *) is_hidden,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "isReadOnly", (void *) is_read_only,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "isCheckedOut", (void *) is_checked_out,NULL) 
!=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "isPublished", (void *) is_published,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "fileSizeHigh", (void *) file_size_high,NULL) 
!=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "fileSizeLow", (void *) file_size_low,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "folderSize", (void *) folder_size,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "creatorCode", (void *) creator_code,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "typeCode", (void *) type_code,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "versionMajor", (void *) version_major,NULL) !=
+      PDF_OK)
+    {
+      return PDF_ERROR;
+    }
+  if (pdf_hash_add (props_hash, "versionMinor", (void *) version_minor,NULL) !=
       PDF_OK)
     {
       return PDF_ERROR;

=== modified file 'src/base/pdf-hash.c'
--- src/base/pdf-hash.c 2008-05-06 20:53:43 +0000
+++ src/base/pdf-hash.c 2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-05-06 14:44:35 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:47:06 gerel"
  *
  *       File:         pdf-hash.c
  *       Date:         Sat Apr  12 12:22:05 2008
@@ -182,7 +182,8 @@
 
 
 pdf_status_t
-pdf_hash_add (pdf_hash_t table, const char *key, const void *element)
+pdf_hash_add (pdf_hash_t table, const char *key, const void *element,
+              pdf_hash_element_dispose_fn_t disp_fn)
 {
   pdf_status_t st;
   pdf_hash_element_t *newelt;
@@ -195,6 +196,7 @@
         {
           newelt->key = key;
           newelt->value = element;
+          newelt->disp_fn = disp_fn;
           gl_list_add_first ((gl_list_t)table.elements, newelt);
           gl_sortedlist_add ((gl_list_t)table.keys, key_compare, key);
         }
@@ -232,10 +234,16 @@
           pdf_hash_element_t *removed;
           removed = (pdf_hash_element_t*)
                     gl_list_node_value((gl_list_t)table.elements, node);
-          if (table.dispose_fn != NULL)
+
+          if (removed->disp_fn != NULL)
+            {
+              removed->disp_fn (removed->value);
+            }
+          else if (table.dispose_fn != NULL)
             {
               table.dispose_fn (removed->value);
             }
+
           pdf_dealloc(removed);
           gl_list_remove_node ((gl_list_t)table.elements, node);
           gl_sortedlist_remove ((gl_list_t)table.keys, key_compare, key);

=== modified file 'src/base/pdf-hash.h'
--- src/base/pdf-hash.h 2008-05-06 20:53:43 +0000
+++ src/base/pdf-hash.h 2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-05-06 14:44:21 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:44:55 gerel"
  *
  *       File:         pdf-hash.h
  *       Date:         Sat Apr  12 12:22:05 2008
@@ -29,17 +29,22 @@
 #include <stdio.h>
 #include <pdf-list.h>
 
+
+/* BEGIN PUBLIC */
+typedef void (*pdf_hash_element_dispose_fn_t) (const void *elt);
+/* END PUBLIC */
+
 struct pdf_hash_element_s
 {
   const char * key;
   const void * value;
+  pdf_hash_element_dispose_fn_t disp_fn;
 };
 
 typedef struct pdf_hash_element_s pdf_hash_element_t;
 
 /* BEGIN PUBLIC */
 
-typedef void (*pdf_hash_element_dispose_fn_t) (const void *elt);
 typedef void (*pdf_hash_key_dispose_fn_t) (const void *key);
 
 struct pdf_hash_s
@@ -86,7 +91,8 @@
  /* Adding and removing elements */
 
 pdf_status_t
-pdf_hash_add (pdf_hash_t table, const char *key, const void *element);
+pdf_hash_add (pdf_hash_t table, const char *key, const void *element,
+              pdf_hash_element_dispose_fn_t disp_fn);
 
 pdf_status_t
 pdf_hash_remove (pdf_hash_t table, const char *key);

=== modified file 'torture/unit/base/hash/pdf-hash-add.c'
--- torture/unit/base/hash/pdf-hash-add.c       2008-04-18 03:50:23 +0000
+++ torture/unit/base/hash/pdf-hash-add.c       2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-04-16 20:29:44 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:51:01 gerel"
  *
  *       File:         pdf-hash-add.c
  *       Date:         Wed Mar  12 12:43:00 2008
@@ -43,7 +43,7 @@
 
   pdf_hash_create (NULL, NULL, &table);
 
-  fail_if (pdf_hash_add (table, "key", "val") != PDF_OK);
+  fail_if (pdf_hash_add (table, "key", "val", NULL) != PDF_OK);
 
   pdf_hash_destroy (&table);
 }
@@ -63,7 +63,7 @@
 
   pdf_hash_create (NULL, NULL, &table);
 
-  fail_if (pdf_hash_add (table, NULL, "val") != PDF_EBADDATA);
+  fail_if (pdf_hash_add (table, NULL, "val",NULL) != PDF_EBADDATA);
 
   pdf_hash_destroy (&table);
 }
@@ -83,7 +83,7 @@
 
   pdf_hash_create (NULL, NULL, &table);
 
-  fail_if (pdf_hash_add (table, "key", NULL) != PDF_EBADDATA);
+  fail_if (pdf_hash_add (table, "key", NULL,NULL) != PDF_EBADDATA);
 
   pdf_hash_destroy (&table);
 }

=== modified file 'torture/unit/base/hash/pdf-hash-iterator-next.c'
--- torture/unit/base/hash/pdf-hash-iterator-next.c     2008-04-23 22:35:35 
+0000
+++ torture/unit/base/hash/pdf-hash-iterator-next.c     2008-07-21 17:15:33 
+0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/04/18 21:22:47 jemarch"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:52:27 gerel"
  *
  *       File:         pdf-hash-iterator-next.c
  *       Date:         Wed Mar  12 12:43:00 2008
@@ -45,7 +45,7 @@
   char *key;
   
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
   pdf_hash_iterator (table, &itr);
 
   fail_if (pdf_hash_iterator_next (&itr, (void *) &key) != PDF_OK);
@@ -69,7 +69,7 @@
   char *key;
   
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
 
   fail_if (pdf_hash_iterator_next (NULL, (void *) &key) != PDF_EBADDATA);
 
@@ -92,7 +92,7 @@
   pdf_hash_iterator_t itr;
  
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
   pdf_hash_iterator (table, &itr);
 
   fail_if (pdf_hash_iterator_next (&itr, NULL) != PDF_EBADDATA);

=== modified file 'torture/unit/base/hash/pdf-hash-key-p.c'
--- torture/unit/base/hash/pdf-hash-key-p.c     2008-04-18 03:50:23 +0000
+++ torture/unit/base/hash/pdf-hash-key-p.c     2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-04-16 20:30:36 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:52:41 gerel"
  *
  *       File:         pdf-hash-key-p.c
  *       Date:         Wed Mar  12 12:43:00 2008
@@ -42,7 +42,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val", NULL);
  
   fail_if (pdf_hash_key_p (table, "key") != PDF_TRUE);
 
@@ -63,7 +63,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val", NULL);
  
   fail_if (pdf_hash_key_p (table, "ke") != PDF_FALSE);
 

=== modified file 'torture/unit/base/hash/pdf-hash-remove.c'
--- torture/unit/base/hash/pdf-hash-remove.c    2008-04-18 03:50:23 +0000
+++ torture/unit/base/hash/pdf-hash-remove.c    2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-04-16 20:30:42 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:51:40 gerel"
  *
  *       File:         pdf-hash-remove.c
  *       Date:         Wed Mar  12 12:43:00 2008
@@ -42,7 +42,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
 
   fail_if (pdf_hash_remove (table, "key") != PDF_OK);
 
@@ -64,7 +64,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
 
   fail_if (pdf_hash_remove (table, "ke") != PDF_ERROR);
 
@@ -85,7 +85,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
 
   fail_if (pdf_hash_remove (table, NULL) != PDF_EBADDATA);
 

=== modified file 'torture/unit/base/hash/pdf-hash-rename.c'
--- torture/unit/base/hash/pdf-hash-rename.c    2008-04-18 03:50:23 +0000
+++ torture/unit/base/hash/pdf-hash-rename.c    2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2008-04-16 20:30:47 gerel"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:53:03 gerel"
  *
  *       File:         pdf-hash-rename.c
  *       Date:         Wed Mar  12 12:43:00 2008
@@ -42,7 +42,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
 
   fail_if (pdf_hash_rename (table, "key", "ke") != PDF_OK);
   fail_if (pdf_hash_key_p (table, "ke") != PDF_TRUE);
@@ -63,7 +63,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
 
   fail_if (pdf_hash_rename (table, "ke", "key") != PDF_ERROR);
 

=== modified file 'torture/unit/base/hash/pdf-hash-search.c'
--- torture/unit/base/hash/pdf-hash-search.c    2008-04-22 22:16:14 +0000
+++ torture/unit/base/hash/pdf-hash-search.c    2008-07-21 17:15:33 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/04/22 22:13:38 jemarch"
+/* -*- mode: C -*- Time-stamp: "2008-07-21 13:55:49 gerel"
  *
  *       File:         pdf-hash-search.c
  *       Date:         Wed Mar  12 12:43:00 2008
@@ -43,7 +43,19 @@
   char *s;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
+  pdf_hash_add (table, "ky", "val",NULL);
+  pdf_hash_add (table, "ky23", "val",NULL);
+  pdf_hash_add (table, "2ky23", "val",NULL);
+  pdf_hash_add (table, "032ky23", "val",NULL);
+  pdf_hash_add (table, "230", "val",NULL);
+  pdf_hash_add (table, "0389", "val",NULL);
+  pdf_hash_add (table, "123", "val",NULL);
+  pdf_hash_add (table, "1", "val",NULL);
+  pdf_hash_add (table, "aky23", "val",NULL);
+  pdf_hash_add (table, "AB23", "val",NULL);
+  pdf_hash_add (table, "0", "val",NULL);
+  pdf_hash_add (table, "AB", "val",NULL);
   
   fail_if (pdf_hash_search (table, "key", (void *) &s) != PDF_OK);
 
@@ -65,7 +77,7 @@
   char *s;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
   
   fail_if (pdf_hash_search (table, "ke", (void *) &s) != PDF_ERROR);
 
@@ -86,7 +98,7 @@
   pdf_hash_t table;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
   
   fail_if (pdf_hash_search (table, "key", NULL) != PDF_EBADDATA);
 
@@ -109,7 +121,7 @@
   char *s;
 
   pdf_hash_create (NULL, NULL, &table);
-  pdf_hash_add (table, "key", "val");
+  pdf_hash_add (table, "key", "val",NULL);
   
   fail_if (pdf_hash_search (table, NULL, (void *) &s) != PDF_EBADDATA);
 

# Begin bundle
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
nwA=

###


-gerel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]