fixes lifetime issue caused by 19c8468

This commit is contained in:
rsw0x 2015-01-02 00:49:27 -05:00
parent c693126461
commit 03fab0e15d
1 changed files with 3 additions and 3 deletions

View File

@ -164,13 +164,13 @@ struct ModuleCache
return null; return null;
const(Token)[] tokens; const(Token)[] tokens;
{ auto parseStringCache = StringCache(StringCache.defaultBucketCount);
{
ubyte[] source = cast(ubyte[]) Mallocator.it.allocate(fileSize); ubyte[] source = cast(ubyte[]) Mallocator.it.allocate(fileSize);
scope (exit) Mallocator.it.deallocate(source); scope (exit) Mallocator.it.deallocate(source);
f.rawRead(source); f.rawRead(source);
LexerConfig config; LexerConfig config;
config.fileName = cachedLocation; config.fileName = cachedLocation;
auto parseStringCache = StringCache(StringCache.defaultBucketCount);
// The first three bytes are sliced off here if the file starts with a // The first three bytes are sliced off here if the file starts with a
// Unicode byte order mark. The lexer/parser don't handle them. // Unicode byte order mark. The lexer/parser don't handle them.
@ -178,7 +178,7 @@ struct ModuleCache
(source.length >= 3 && source[0 .. 3] == "\xef\xbb\xbf"c) (source.length >= 3 && source[0 .. 3] == "\xef\xbb\xbf"c)
? source[3 .. $] : source, ? source[3 .. $] : source,
config, &parseStringCache); config, &parseStringCache);
} }
auto semanticAllocator = scoped!(CAllocatorImpl!(BlockAllocator!(1024 * 64))); auto semanticAllocator = scoped!(CAllocatorImpl!(BlockAllocator!(1024 * 64)));
Module m = parseModuleSimple(tokens[], cachedLocation, semanticAllocator); Module m = parseModuleSimple(tokens[], cachedLocation, semanticAllocator);