upgraded to xpdf-3.01pl1
[swftools.git] / pdf2swf / xpdf / Dict.cc
index 94ca386..dd1517f 100644 (file)
@@ -2,11 +2,13 @@
 //
 // Dict.cc
 //
-// Copyright 1996 Derek B. Noonburg
+// Copyright 1996-2003 Glyph & Cog, LLC
 //
 //========================================================================
 
-#ifdef __GNUC__
+#include <aconf.h>
+
+#ifdef USE_GCC_PRAGMAS
 #pragma implementation
 #endif
 
@@ -21,7 +23,8 @@
 // Dict
 //------------------------------------------------------------------------
 
-Dict::Dict() {
+Dict::Dict(XRef *xrefA) {
+  xref = xrefA;
   entries = NULL;
   size = length = 0;
   ref = 1;
@@ -38,9 +41,13 @@ Dict::~Dict() {
 }
 
 void Dict::add(char *key, Object *val) {
-  if (length + 1 > size) {
-    size += 8;
-    entries = (DictEntry *)grealloc(entries, size * sizeof(DictEntry));
+  if (length == size) {
+    if (length == 0) {
+      size = 8;
+    } else {
+      size *= 2;
+    }
+    entries = (DictEntry *)greallocn(entries, size, sizeof(DictEntry));
   }
   entries[length].key = key;
   entries[length].val = *val;
@@ -66,7 +73,7 @@ GBool Dict::is(char *type) {
 Object *Dict::lookup(char *key, Object *obj) {
   DictEntry *e;
 
-  return (e = find(key)) ? e->val.fetch(obj) : obj->initNull();
+  return (e = find(key)) ? e->val.fetch(xref, obj) : obj->initNull();
 }
 
 Object *Dict::lookupNF(char *key, Object *obj) {
@@ -80,26 +87,9 @@ char *Dict::getKey(int i) {
 }
 
 Object *Dict::getVal(int i, Object *obj) {
-  return entries[i].val.fetch(obj);
+  return entries[i].val.fetch(xref, obj);
 }
 
 Object *Dict::getValNF(int i, Object *obj) {
   return entries[i].val.copy(obj);
 }
-
-void Dict::dumpEntries()
-{
-    int t;
-    for(t=0;t<size;t++)
-    {
-       printf("key: %s\n", entries[t].key);
-       fflush(stdout);
-       {
-          printf(" value:\n");
-          entries[t].val.print();
-       }
-       fflush(stdout);
-       printf("---\n");
-       fflush(stdout);
-    }
-}