From 6446a550facb7e307578ae487b8ff39d24071722 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Sat, 25 Jan 2014 15:19:48 -0800 Subject: [PATCH] Support choose()ing "LARGE" Objective-C classes. --- ObjectiveC/Library.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ObjectiveC/Library.mm b/ObjectiveC/Library.mm index 46c7f98..936a5a1 100644 --- a/ObjectiveC/Library.mm +++ b/ObjectiveC/Library.mm @@ -2315,8 +2315,9 @@ static void choose_(task_t task, void *baton, unsigned type, vm_range_t *ranges, if (result == choice->query_.end()) continue; - // XXX: if (size < class_getInstanceSize(*result)) - if ((class_getInstanceSize(*result) + 15) / 16 * 16 != size) + 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) continue; CYArrayPush(context, choice->results_, CYCastJSValue(context, reinterpret_cast(data))); } -- 2.49.0