[svn:parrot] r40815 - trunk/src
NotFound at svn.parrot.org
NotFound at svn.parrot.org
Wed Aug 26 06:49:07 UTC 2009
Author: NotFound
Date: Wed Aug 26 06:49:06 2009
New Revision: 40815
URL: https://trac.parrot.org/parrot/changeset/40815
Log:
[core] fix an attribute handling issue
Modified:
trunk/src/pmc.c
Modified: trunk/src/pmc.c
==============================================================================
--- trunk/src/pmc.c Wed Aug 26 06:37:06 2009 (r40814)
+++ trunk/src/pmc.c Wed Aug 26 06:49:06 2009 (r40815)
@@ -222,11 +222,6 @@
if (PObj_active_destroy_TEST(pmc))
VTABLE_destroy(interp, pmc);
- PObj_flags_SETTO(pmc, PObj_is_PMC_FLAG | new_flags);
-
- /* Set the right vtable */
- pmc->vtable = new_vtable;
-
if (PMC_data(pmc) && pmc->vtable->attr_size) {
#if GC_USE_FIXED_SIZE_ALLOCATOR
Parrot_gc_free_pmc_attributes(interp, pmc, pmc->vtable->attr_size);
@@ -235,9 +230,14 @@
#endif
}
+ PObj_flags_SETTO(pmc, PObj_is_PMC_FLAG | new_flags);
+
+ /* Set the right vtable */
+ pmc->vtable = new_vtable;
+
if (new_vtable->attr_size) {
#if GC_USE_FIXED_SIZE_ALLOCATOR
- Parrot_gc_allocate_pmc_attributes(interp, pmc, pmc->vtable->attr_size);
+ Parrot_gc_allocate_pmc_attributes(interp, pmc, new_vtable->attr_size);
#else
PMC_data(pmc) = mem_sys_allocate_zeroed(new_vtable->attr_size);
#endif
More information about the parrot-commits
mailing list