[macruby-changes] [2869] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Tue Oct 20 16:34:03 PDT 2009
Revision: 2869
http://trac.macosforge.org/projects/ruby/changeset/2869
Author: lsansonetti at apple.com
Date: 2009-10-20 16:33:59 -0700 (Tue, 20 Oct 2009)
Log Message:
-----------
fixed a couple of ivar slot bugs
Modified Paths:
--------------
MacRuby/trunk/object.c
MacRuby/trunk/vm.h
Modified: MacRuby/trunk/object.c
===================================================================
--- MacRuby/trunk/object.c 2009-10-20 22:11:43 UTC (rev 2868)
+++ MacRuby/trunk/object.c 2009-10-20 23:33:59 UTC (rev 2869)
@@ -222,13 +222,16 @@
else {
ROBJECT(dest)->tbl = NULL;
}
- ROBJECT(dest)->num_slots = ROBJECT(obj)->num_slots;
- if (ROBJECT(dest)->num_slots > 0) {
- int i;
- for (i = 0; i < ROBJECT(obj)->num_slots; i++) {
- ROBJECT(dest)->slots[i] = ROBJECT(obj)->slots[i];
+ if (ROBJECT(obj)->num_slots > 0) {
+ if (ROBJECT(dest)->num_slots < ROBJECT(obj)->num_slots) {
+ rb_vm_regrow_robject_slots(ROBJECT(dest),
+ ROBJECT(obj)->num_slots);
}
+ for (int i = 0; i < ROBJECT(obj)->num_slots; i++) {
+ GC_WB(&ROBJECT(dest)->slots[i], ROBJECT(obj)->slots[i]);
+ }
}
+ ROBJECT(dest)->num_slots = ROBJECT(obj)->num_slots;
break;
case T_CLASS:
case T_MODULE:
Modified: MacRuby/trunk/vm.h
===================================================================
--- MacRuby/trunk/vm.h 2009-10-20 22:11:43 UTC (rev 2868)
+++ MacRuby/trunk/vm.h 2009-10-20 23:33:59 UTC (rev 2869)
@@ -314,11 +314,11 @@
{
unsigned int i;
VALUE *new_slots = (VALUE *)xmalloc(sizeof(VALUE) * (new_num_slot + 1));
- for (i = 0; i <= obj->num_slots; i++) {
+ for (i = 0; i < obj->num_slots; i++) {
GC_WB(&new_slots[i], obj->slots[i]);
}
GC_WB(&obj->slots, new_slots);
- for (i = obj->num_slots + 1; i < new_num_slot; i++) {
+ for (i = obj->num_slots; i <= new_num_slot; i++) {
obj->slots[i] = Qundef;
}
obj->num_slots = new_num_slot + 1;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091020/96c04621/attachment.html>
More information about the macruby-changes
mailing list