luau-compile: Fix usage of vector-ctor without vector-lib (#1172)

When --vector-lib is not specified, CompileOptions::vectorLib was set to
an empty string. This resulted in the builtin matching not working,
since vectorLib must either be a null pointer or a pointer to a valid
global identifier.

---------

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
This commit is contained in:
Arseny Kapoulkine 2024-02-26 09:15:13 -08:00 committed by GitHub
parent 3b0e93bec9
commit c9324853e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -46,10 +46,9 @@ struct GlobalOptions
int optimizationLevel = 1;
int debugLevel = 1;
std::string vectorLib;
std::string vectorCtor;
std::string vectorType;
const char* vectorLib = nullptr;
const char* vectorCtor = nullptr;
const char* vectorType = nullptr;
} globalOptions;
static Luau::CompileOptions copts()
@ -58,10 +57,9 @@ static Luau::CompileOptions copts()
result.optimizationLevel = globalOptions.optimizationLevel;
result.debugLevel = globalOptions.debugLevel;
// globalOptions outlive the CompileOptions, so it's safe to use string data pointers here
result.vectorLib = globalOptions.vectorLib.c_str();
result.vectorCtor = globalOptions.vectorCtor.c_str();
result.vectorType = globalOptions.vectorType.c_str();
result.vectorLib = globalOptions.vectorLib;
result.vectorCtor = globalOptions.vectorCtor;
result.vectorType = globalOptions.vectorType;
return result;
}