Author: andreas
Date: Fri Nov 12 21:12:38 2004
New Revision: 9583
Modified:
trunk/fundev/Sources/dylan/boot.dylan
trunk/fundev/Sources/lib/run-time/collector.c
Log:
bug: 7143
- Drop a bogus assertion in MMCommitWrapper
- Properly generate a version field for dynamically generated wrappers
This fixes bug 7143.
Modified: trunk/fundev/Sources/dylan/boot.dylan
==============================================================================
--- trunk/fundev/Sources/dylan/boot.dylan (original)
+++ trunk/fundev/Sources/dylan/boot.dylan Fri Nov 12 21:12:38 2004
@@ -133,7 +133,12 @@
let wrapper :: <mm-wrapper> = system-allocate-wrapper();
wrapper.mm-wrapper-implementation-class := implementation-class;
wrapper.mm-wrapper-fixed-part := integer-as-raw(fixed-part-header);
- wrapper.mm-wrapper-variable-part := integer-as-raw(variable-part-header);
+ wrapper.mm-wrapper-variable-part // store version 2 in high byte
+ := primitive-machine-word-bit-field-deposit
+ (integer-as-raw(2),
+ integer-as-raw($machine-word-size - 8),
+ integer-as-raw(8),
+ integer-as-raw(variable-part-header));
// wrapper.mm-wrapper-number-patterns := 0;
wrapper
end function;
Modified: trunk/fundev/Sources/lib/run-time/collector.c
==============================================================================
--- trunk/fundev/Sources/lib/run-time/collector.c (original)
+++ trunk/fundev/Sources/lib/run-time/collector.c Fri Nov 12 21:12:38 2004
@@ -1259,7 +1259,9 @@
assert(gc_teb->gc_teb_inside_tramp);
assert(dylan_check(p));
- assert(dylan_wrapper_check(p));
+ // there used to be a call to dylan_wrapper_check(p) here, but
+ // the wrapper isn't properly initialized until after allocation.
+ // So the check will always fail.
res = mps_root_create_fmt(&root, arena, MPS_RANK_EXACT,
(mps_rm_t)0, fmt_A->scan, p, (char *)p + size);
_______________________________________________
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
https://gauss.gwydiondylan.org/mailman/listinfo/gd-chatter
|