Index: /trunk/src/rt/lifetime.d =================================================================== --- /trunk/src/rt/lifetime.d (revision 281) +++ /trunk/src/rt/lifetime.d (revision 282) @@ -402,27 +402,27 @@ return ptr; ptr++; } } else { // try to do a smart lookup, using __nextBlkIdx as the "head" BlkInfo *ptr = __blkcache.ptr; for(int i = __nextBlkIdx; i >= 0; --i) { - if(ptr[i].base <= interior && (interior - ptr[i].base) < ptr.size) + if(ptr[i].base <= interior && (interior - ptr[i].base) < ptr[i].size) return ptr + i; } for(int i = N_CACHE_BLOCKS - 1; i > __nextBlkIdx; --i) { - if(ptr[i].base <= interior && (interior - ptr[i].base) < ptr.size) + if(ptr[i].base <= interior && (interior - ptr[i].base) < ptr[i].size) return ptr + i; } } return null; // not in cache. } } void __insertBlkInfoCache(BlkInfo bi, BlkInfo *curpos) { version(single_cache)