Skip to content
Permalink
Browse files

- added access check for state functions

Private functions cannot be called from derived classes anymore

https://forum.zdoom.org/viewtopic.php?t=66158
  • Loading branch information...
alexey-lysiuk authored and coelckers committed Oct 19, 2019
1 parent 1deade9 commit 5a6d8035d0c8c3cedb1899b6f5f7229f9a097f65
Showing with 5 additions and 0 deletions.
  1. +5 −0 src/scripting/zscript/zcc_compile.cpp
@@ -2998,6 +2998,11 @@ FxExpression *ZCCCompiler::SetupActionFunction(PClass *cls, ZCC_TreeNode *af, in
int comboflags = afd->Variants[0].UseFlags & StateFlags;
if (comboflags == StateFlags) // the function must satisfy all the flags the state requires
{
if ((afd->Variants[0].Flags & VARF_Private) && afd->OwningClass != cls->VMType)
{
Error(af, "%s is declared private and not accessible", FName(id->Identifier).GetChars());
}

return new FxVMFunctionCall(new FxSelf(*af), afd, argumentlist, *af, false);
}
else

0 comments on commit 5a6d803

Please sign in to comment.
You can’t perform that action at this time.