Index: GSObjCRuntime.m =================================================================== --- GSObjCRuntime.m (revision 37628) +++ GSObjCRuntime.m (working copy) @@ -1090,6 +1090,25 @@ } break; + case _C_BOOL: + { + bool v; + + if (sel == 0) + { + v = *(bool *)((char *)self + offset); + } + else + { + bool (*imp)(id, SEL) = + (bool (*)(id, SEL))[self methodForSelector: sel]; + + v = (*imp)(self, sel); + } + val = [NSNumber numberWithBool: v]; + } + break; + case _C_SHT: { short v; @@ -1534,6 +1553,26 @@ } break; + case _C_BOOL: + { + bool v = [val boolValue]; + + if (sel == 0) + { + bool *ptr = (bool*)((char *)self + offset); + + *ptr = v; + } + else + { + void (*imp)(id, SEL, bool) = + (void (*)(id, SEL, bool))[self methodForSelector: sel]; + + (*imp)(self, sel, v); + } + } + break; + case _C_SHT: { short v = [val shortValue];