1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Fixed function pointers with 'void* this'

This commit is contained in:
Brian Fiete 2020-12-18 10:52:05 -08:00
parent 7bc9b7af0a
commit 9d3e245f69

View file

@ -5027,7 +5027,7 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, BfMethodInstance*
{
if (mModule->mIsConstModule)
{
funcCallInst = mModule->mBfIRBuilder->ConstEval_GetInterfaceFunc(irArgs[0], methodInstance->mMethodInstanceGroup->mOwner->mTypeId, methodInstance->mVirtualTableIdx, funcPtrType1);
funcCallInst = mModule->mBfIRBuilder->ConstEval_GetInterfaceFunc(irArgs[0], methodInstance->mMethodInstanceGroup->mOwner->mTypeId, methodInstance->mMethodDef->mIdx, funcPtrType1);
}
else
{
@ -6518,7 +6518,7 @@ SplatArgs(lookupVal, irArgs);
{
auto underlyingType = wantType->GetUnderlyingType();
mModule->PopulateType(underlyingType, BfPopulateType_Data);
if (underlyingType->IsValuelessType())
if ((underlyingType->IsValuelessType()) && (!underlyingType->IsVoid()))
{
// We don't actually pass a 'this' pointer for mut methods on valueless structs
argIdx++;