Browse Source

Do not install private methods from parent to subclass.

All methods defined in superclass can be access by $this and $parent construct. There is no need to copy private methods, as they cannot be access in $this context.
release/v0.1
Rafal Kupiec 1 year ago
parent
commit
02471b4ccb
Signed by: belliash GPG Key ID: 4E829243E0CFE6B4
1 changed files with 5 additions and 3 deletions
  1. +5
    -3
      engine/oop.c

+ 5
- 3
engine/oop.c View File

@ -282,9 +282,11 @@ PH7_PRIVATE sxi32 PH7_ClassInherit(ph7_vm *pVm, ph7_class *pSub, ph7_class *pBas
}
}
/* Install the method */
rc = SyHashInsert(&pSub->hMethod, (const void *)pName->zString, pName->nByte, pMeth);
if(rc != SXRET_OK) {
return rc;
if(pMeth->iProtection != PH7_CLASS_PROT_PRIVATE) {
rc = SyHashInsert(&pSub->hMethod, (const void *)pName->zString, pName->nByte, pMeth);
if(rc != SXRET_OK) {
return rc;
}
}
}
/* Mark first inherited class as direct subclass */

Loading…
Cancel
Save