if (JSValueIsObjectOfClass(context, value, Selector_)) {
Selector_privateData *internal(reinterpret_cast<Selector_privateData *>(JSObjectGetPrivate((JSObjectRef) value)));
return reinterpret_cast<SEL>(internal->value_);
- } else
- return CYCastPointer<SEL>(context, value);
+ } else {
+ CYPool pool;
+ return sel_registerName(CYPoolCString(pool, context, value));
+ }
}
void *CYObjectiveC_ExecuteStart(JSContextRef context) { CYSadTry {
size_t needed(class_getInstanceSize(*result));
// XXX: if (size < needed)
- if (needed <= 496 && (needed + 15) / 16 * 16 != size || needed > 496 && (needed + 511) / 512 * 512 != size)
+
+ size_t boundary(496);
+#ifdef __LP64__
+ boundary *= 2;
+#endif
+ if (needed <= boundary && (needed + 15) / 16 * 16 != size || needed > boundary && (needed + 511) / 512 * 512 != size)
continue;
CYArrayPush(context, choice->results_, CYCastJSValue(context, reinterpret_cast<id>(data)));
}