Fixed compiler warnings in compact dict implementation on 32-bit platforms.
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 91a4e7d..4bcc3db 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -326,16 +326,16 @@
int16_t *indices = keys->dk_indices.as_2;
ix = indices[i];
}
- else if (s <= 0xffffffff) {
- int32_t *indices = keys->dk_indices.as_4;
- ix = indices[i];
- }
#if SIZEOF_VOID_P > 4
- else {
+ else if (s > 0xffffffff) {
int64_t *indices = keys->dk_indices.as_8;
ix = indices[i];
}
#endif
+ else {
+ int32_t *indices = keys->dk_indices.as_4;
+ ix = indices[i];
+ }
assert(ix >= DKIX_DUMMY);
return ix;
}
@@ -358,17 +358,17 @@
assert(ix <= 0x7fff);
indices[i] = (int16_t)ix;
}
- else if (s <= 0xffffffff) {
- int32_t *indices = keys->dk_indices.as_4;
- assert(ix <= 0x7fffffff);
- indices[i] = (int32_t)ix;
- }
#if SIZEOF_VOID_P > 4
- else {
+ else if (s > 0xffffffff) {
int64_t *indices = keys->dk_indices.as_8;
indices[i] = ix;
}
#endif
+ else {
+ int32_t *indices = keys->dk_indices.as_4;
+ assert(ix <= 0x7fffffff);
+ indices[i] = (int32_t)ix;
+ }
}