Fixes several memory issues.

This commit is contained in:
2021-08-22 19:29:00 +02:00
parent a6013437b2
commit 3488339d51
4 changed files with 51 additions and 18 deletions

View File

@@ -11,16 +11,17 @@ public:
: _name(name), _function(function), _env(new TestEnvironment()) {}
void Run(asIScriptContext* ctx) {
ctx->PushState();
ctx->Prepare(_function);
ctx->SetUserData(_env);
ctx->SetUserData(_env.get());
auto e = ctx->Execute();
if (e == asEXECUTION_EXCEPTION) {
_errorMessage = ctx->GetExceptionString();
_result = TestResult::Failed;
ctx->Release();
ctx->PopState();
return;
}
ctx->Release();
ctx->PopState();
Ensure(e == asEXECUTION_FINISHED);
_result = TestResult::Success;
}
@@ -31,7 +32,7 @@ public:
private:
std::string _name;
asIScriptFunction* _function;
TestEnvironment* _env;
std::unique_ptr<TestEnvironment> _env;
TestResult _result = TestResult::NotRan;
std::string _errorMessage = "";