fixes lifetime issue caused by 19c8468
This commit is contained in:
parent
c693126461
commit
03fab0e15d
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue