From 13c7f2fb8fc0619c8da1b5c8a697f7894479b070 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Tue, 3 Jun 2014 15:32:07 -0700 Subject: [PATCH] Fix issue in 64-bit choose() reported by heardrwt. --- ObjectiveC/Library.mm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ObjectiveC/Library.mm b/ObjectiveC/Library.mm index b7d23ef..a685816 100644 --- a/ObjectiveC/Library.mm +++ b/ObjectiveC/Library.mm @@ -2334,7 +2334,12 @@ static void choose_(task_t task, void *baton, unsigned type, vm_range_t *ranges, 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(data))); } -- 2.47.2