diff --git a/Test/ManyManySelectors.m b/Test/ManyManySelectors.m index 49f8dc2..2e6f7d0 100644 --- a/Test/ManyManySelectors.m +++ b/Test/ManyManySelectors.m @@ -3,25 +3,33 @@ #include #include +#include +#include +#include + + static BOOL methodCalled = NO; +static char selBuffer[] = "XXXXXXXselectorXXXXXXXX"; + static id x(id self, SEL _cmd) { methodCalled = YES; - assert(strcmp("selectoreffff", sel_getName(_cmd)) == 0); + assert(strcmp(selBuffer, sel_getName(_cmd)) == 0); return self; } int main(void) { - char selBuffer[] = "selectorXXXXXXXX"; SEL nextSel; Class cls = [Test class]; assert(cls != Nil); + int sel_size = 0; for (uint32_t i=0 ; i<0xf0000 ; i++) { - snprintf(selBuffer, 16, "selector%" PRIx32, i); + snprintf(selBuffer, 16, "%" PRId32 "selector%" PRIx32, i, i); nextSel = sel_registerName(selBuffer); + sel_size += strlen(selBuffer); } assert(class_addMethod(object_getClass([Test class]), nextSel, (IMP)x, "@@:")); assert(cls == [Test class]); @@ -33,3 +41,4 @@ int main(void) assert(methodCalled == YES); return 0; } +