Author: marvin
Date: Mon Jul  2 19:53:56 2012
New Revision: 1356440

URL: http://svn.apache.org/viewvc?rev=1356440&view=rev
Log:
Fix calls to Load() with NULL invocant.

Modified:
    lucy/trunk/core/Lucy/Object/Hash.c
    lucy/trunk/core/Lucy/Object/VTable.c
    lucy/trunk/core/Lucy/Test/Plan/TestBlobType.c
    lucy/trunk/core/Lucy/Test/Plan/TestFullTextType.c

Modified: lucy/trunk/core/Lucy/Object/Hash.c
URL: 
http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Object/Hash.c?rev=1356440&r1=1356439&r2=1356440&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Object/Hash.c (original)
+++ lucy/trunk/core/Lucy/Object/Hash.c Mon Jul  2 19:53:56 2012
@@ -150,7 +150,7 @@ Hash_load(Hash *self, Obj *dump) {
                       VTable_Get_Name(vtable));
             }
             else if (load != (Obj_Load_t)Hash_load) { // stop inf loop
-                return load(NULL, dump);
+                return VTable_Load_Obj(vtable, dump);
             }
         }
     }

Modified: lucy/trunk/core/Lucy/Object/VTable.c
URL: 
http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Object/VTable.c?rev=1356440&r1=1356439&r2=1356440&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Object/VTable.c (original)
+++ lucy/trunk/core/Lucy/Object/VTable.c Mon Jul  2 19:53:56 2012
@@ -272,7 +272,10 @@ VTable_load_obj(VTable *self, Obj *dump)
     if (load == Obj_load) {
         THROW(ERR, "Abstract method Load() not defined for %o", self->name);
     }
-    return load(NULL, dump);
+    Obj *invoker = VTable_Make_Obj(self);
+    Obj *loaded = load(invoker, dump);
+    DECREF(invoker);
+    return loaded;
 }
 
 static void

Modified: lucy/trunk/core/Lucy/Test/Plan/TestBlobType.c
URL: 
http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Test/Plan/TestBlobType.c?rev=1356440&r1=1356439&r2=1356440&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Test/Plan/TestBlobType.c (original)
+++ lucy/trunk/core/Lucy/Test/Plan/TestBlobType.c Mon Jul  2 19:53:56 2012
@@ -28,7 +28,7 @@ test_Dump_Load_and_Equals(TestBatch *bat
     Obj      *dump            = (Obj*)BlobType_Dump(type);
     Obj      *clone           = Obj_Load(dump, dump);
     Obj      *another_dump    = (Obj*)BlobType_Dump_For_Schema(type);
-    BlobType *another_clone   = BlobType_load(NULL, another_dump);
+    BlobType *another_clone   = BlobType_load(type, another_dump);
 
     TEST_TRUE(batch, BlobType_Equals(type, (Obj*)clone),
               "Dump => Load round trip");

Modified: lucy/trunk/core/Lucy/Test/Plan/TestFullTextType.c
URL: 
http://svn.apache.org/viewvc/lucy/trunk/core/Lucy/Test/Plan/TestFullTextType.c?rev=1356440&r1=1356439&r2=1356440&view=diff
==============================================================================
--- lucy/trunk/core/Lucy/Test/Plan/TestFullTextType.c (original)
+++ lucy/trunk/core/Lucy/Test/Plan/TestFullTextType.c Mon Jul  2 19:53:56 2012
@@ -45,7 +45,7 @@ test_Dump_Load_and_Equals(TestBatch *bat
 
     // (This step is normally performed by Schema_Load() internally.)
     Hash_Store_Str((Hash*)another_dump, "analyzer", 8, INCREF(tokenizer));
-    FullTextType *another_clone = FullTextType_load(NULL, another_dump);
+    FullTextType *another_clone = FullTextType_load(type, another_dump);
 
     TEST_FALSE(batch, FullTextType_Equals(type, (Obj*)boost_differs),
                "Equals() false with different boost");


Reply via email to