Jelajahi Sumber

Zend_Pdf: [ZF-6926] related commit.

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@17302 44c647ce-9c0f-0410-b52a-842ac1e357ba
alexander 16 tahun lalu
induk
melakukan
a827f62dbb

+ 0 - 2
library/Zend/Pdf/Element/Reference.php

@@ -181,8 +181,6 @@ class Zend_Pdf_Element_Reference extends Zend_Pdf_Element
             throw new Zend_Pdf_Exception('Incorrect reference to the object');
         }
 
-        $this->_factory->registerObject($obj, $this->_objNum . ' ' . $this->_genNum);
-
         $this->_ref = $obj;
     }
 

+ 8 - 7
library/Zend/Pdf/ElementFactory.php

@@ -91,9 +91,9 @@ class Zend_Pdf_ElementFactory implements Zend_Pdf_ElementFactory_Interface
      *
      * Array: ojbectNumber => Zend_Pdf_Element_Object
      *
-     * @var array
+     * @var SplObjectStorage
      */
-    private $_removedObjects = array();
+    private $_removedObjects;
 
     /**
      * List of registered objects.
@@ -153,8 +153,9 @@ class Zend_Pdf_ElementFactory implements Zend_Pdf_ElementFactory_Interface
      */
     public function __construct($objCount)
     {
-        $this->_objectCount       = (int)$objCount;
-        $this->_factoryId         = self::$_identity++;
+        $this->_objectCount    = (int)$objCount;
+        $this->_factoryId      = self::$_identity++;
+        $this->_removedObjects = new SplObjectStorage();
     }
 
 
@@ -349,7 +350,7 @@ class Zend_Pdf_ElementFactory implements Zend_Pdf_ElementFactory_Interface
         }
 
         $this->_modifiedObjects[$obj->getObjNum()] = $obj;
-        $this-> _removedObjects[$obj->getObjNum()] = $obj;
+        $this-> _removedObjects->attach($obj);
     }
 
 
@@ -404,8 +405,8 @@ class Zend_Pdf_ElementFactory implements Zend_Pdf_ElementFactory_Interface
 
         $result = array();
         foreach ($this->_modifiedObjects as $objNum => $obj) {
-            if (key_exists($objNum, $this->_removedObjects)) {
-                $result[$objNum+$shift] = new Zend_Pdf_UpdateInfoContainer($objNum + $shift,
+            if ($this->_removedObjects->contains($obj)) {
+        	                $result[$objNum+$shift] = new Zend_Pdf_UpdateInfoContainer($objNum + $shift,
                                                                            $obj->getGenNum()+1,
                                                                            true);
             } else {