From 5d9854aaffbcdfedbbd35114b6f14d191ca0f1a7 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Wed, 12 Nov 2008 07:41:56 +0100 Subject: [PATCH] Fixed 32bit assumption in statement.c when calling aaApply(2). --- dmd/statement.c | 2 +- dmd2/statement.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dmd/statement.c b/dmd/statement.c index c48d7b70..135f4912 100644 --- a/dmd/statement.c +++ b/dmd/statement.c @@ -1638,7 +1638,7 @@ Statement *ForeachStatement::semantic(Scope *sc) Expressions *exps = new Expressions(); exps->push(aggr); size_t keysize = taa->key->size(); - keysize = (keysize + 3) & ~3; + keysize = (keysize + (PTRSIZE-1)) & ~(PTRSIZE-1); exps->push(new IntegerExp(0, keysize, Type::tsize_t)); // LDC paint delegate argument to the type runtime expects diff --git a/dmd2/statement.c b/dmd2/statement.c index b3a3f2c4..0a1afb8a 100644 --- a/dmd2/statement.c +++ b/dmd2/statement.c @@ -1652,7 +1652,7 @@ Statement *ForeachStatement::semantic(Scope *sc) Expressions *exps = new Expressions(); exps->push(aggr); size_t keysize = taa->index->size(); - keysize = (keysize + 3) & ~3; + keysize = (keysize + (PTRSIZE-1)) & ~(PTRSIZE-1); exps->push(new IntegerExp(0, keysize, Type::tsize_t)); // LDC paint delegate argument to the type runtime expects