Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

IoObject_rawGetSlot_context_ added to perform.c

  • Loading branch information...
commit f82bda167c57372b891a26c029deb2edc49bab97 1 parent 9d6f0b1
@oleganza authored
Showing with 13 additions and 4 deletions.
  1. +13 −4 perform.c
View
17 perform.c
@@ -111,7 +111,9 @@ IOINLINE IO_METHOD(IoObject, perform)
-IOINLINE IoObject *IoObject_rawGetSlot_(IoObject *self, IoSymbol *slotName)
+IOINLINE IoObject *IoObject_rawGetSlot_context_(IoObject *self,
+ IoSymbol *slotName,
+ IoObject **context)
{
register IoObject *v = (IoObject *)NULL;
@@ -119,7 +121,11 @@ IOINLINE IoObject *IoObject_rawGetSlot_(IoObject *self, IoSymbol *slotName)
{
v = (IoObject *)PHash_at_(IoObject_slots(self), slotName);
- if (v) return v;
+ if (v)
+ {
+ *context = self;
+ return v;
+ }
}
IoObject_hasDoneLookup_(self, 1);
@@ -134,9 +140,12 @@ IOINLINE IoObject *IoObject_rawGetSlot_(IoObject *self, IoSymbol *slotName)
continue;
}
- v = IoObject_rawGetSlot_(*protos, slotName);
+ v = IoObject_rawGetSlot_context_(*protos, slotName, context);
- if (v) break;
+ if (v)
+ {
+ break;
+ }
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.