Files
MingSimulator/Plugins/Puerts/Source/JsEnv/Private/JSGeneratedFunction.cpp
T

51 lines
1.8 KiB
C++

/*
* Tencent is pleased to support the open source community by making Puerts available.
* Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
* Puerts is licensed under the BSD 3-Clause License, except for the third-party components listed in the file 'LICENSE' which may
* be subject to their corresponding license terms. This file is subject to the terms and conditions defined in file 'LICENSE',
* which is part of this source code package.
*/
#include "JSGeneratedFunction.h"
DEFINE_FUNCTION(UJSGeneratedFunction::execCallJS)
{
#if !defined(ENGINE_INDEPENDENT_JSENV)
UJSGeneratedFunction* Func = Cast<UJSGeneratedFunction>(Stack.CurrentNativeFunction ? Stack.CurrentNativeFunction : Stack.Node);
check(Func);
// UE_LOG(LogTemp, Warning, TEXT("overrided function called, %s(%p)"), *Func->GetName(), Func);
if (Func)
{
auto PinedDynamicInvoker = Func->DynamicInvoker.Pin();
if (PinedDynamicInvoker)
{
PinedDynamicInvoker->InvokeJsMethod(Context, Func, Stack, RESULT_PARAM);
}
}
#endif
}
DEFINE_FUNCTION(UJSGeneratedFunction::execCallMixin)
{
#if !defined(ENGINE_INDEPENDENT_JSENV)
UFunction* Func = Stack.CurrentNativeFunction ? Stack.CurrentNativeFunction : Stack.Node;
UJSGeneratedFunction* JsFunc = Cast<UJSGeneratedFunction>(Func);
if (!JsFunc)
{
JsFunc = GetJSGeneratedFunctionFromScript(Func);
}
check(JsFunc);
// UE_LOG(LogTemp, Warning, TEXT("overrided function called, %s(%p)"), *Func->GetName(), Func);
if (JsFunc)
{
auto PinedDynamicInvoker = JsFunc->DynamicInvoker.Pin();
if (PinedDynamicInvoker)
{
PinedDynamicInvoker->InvokeMixinMethod(Context, JsFunc, Stack, RESULT_PARAM);
}
}
#endif
}