* src/vm/loader.c (load_class_from_classbuffer) [ENABLE_GC_CACAO]: Fieldinfos
authormichi <none@none>
Tue, 21 Nov 2006 16:56:56 +0000 (16:56 +0000)
committermichi <none@none>
Tue, 21 Nov 2006 16:56:56 +0000 (16:56 +0000)
are no longer placed onto the heap.

* src/vm/class.c (class_free) [ENABLE_GC_CACAO]: Fieldinfos are freed.

src/vm/class.c
src/vm/loader.c

index d43a607104568659d4de7af8255a56cb0db8d586..50b6fd24fa48fa450de1c7f49fc705b732a53e83 100644 (file)
@@ -31,7 +31,7 @@
             Christian Thalinger
                        Edwin Steiner
 
-   $Id: class.c 5844 2006-10-28 12:49:29Z edwin $
+   $Id: class.c 6033 2006-11-21 16:56:56Z michi $
 
 */
 
@@ -384,7 +384,9 @@ void class_free(classinfo *c)
        if (c->fields) {
                for (i = 0; i < c->fieldscount; i++)
                        field_free(&(c->fields[i]));
-/*     MFREE(c->fields, fieldinfo, c->fieldscount); */
+#if defined(ENABLE_CACAO_GC)
+               MFREE(c->fields, fieldinfo, c->fieldscount);
+#endif
        }
        
        if (c->methods) {
index 47064701e2def7c098c05d8e18897dd898fe0911..9386ac59d399d4dad05c9c833db3d03d5f7b2203 100644 (file)
@@ -31,7 +31,7 @@
             Edwin Steiner
             Christian Thalinger
 
-   $Id: loader.c 6013 2006-11-16 22:14:10Z twisti $
+   $Id: loader.c 6033 2006-11-21 16:56:56Z michi $
 
 */
 
@@ -2080,8 +2080,13 @@ classinfo *load_class_from_classbuffer(classbuffer *cb)
                goto return_exception;
 
        c->fieldscount = suck_u2(cb);
+#if defined(ENABLE_GC_CACAO)
+       c->fields = MNEW(fieldinfo, c->fieldscount);
+       MZERO(c->fields, fieldinfo, c->fieldscount);
+#else
        c->fields = GCNEW_UNCOLLECTABLE(fieldinfo, c->fieldscount);
-/*     c->fields = MNEW(fieldinfo, c->fieldscount); */
+#endif
+
        for (i = 0; i < c->fieldscount; i++) {
                if (!load_field(cb, &(c->fields[i]),descpool))
                        goto return_exception;