Store a pointer to class container in each method.
The build was successful. Details

This commit is contained in:
Rafal Kupiec 2019-05-21 08:40:10 +02:00
parent a25b163af6
commit 1acbd21caf
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
2 changed files with 2 additions and 0 deletions

View File

@ -192,6 +192,7 @@ PH7_PRIVATE sxi32 PH7_ClassInstallAttr(ph7_class *pClass, ph7_class_attr *pAttr)
PH7_PRIVATE sxi32 PH7_ClassInstallMethod(ph7_class *pClass, ph7_class_method *pMeth) { PH7_PRIVATE sxi32 PH7_ClassInstallMethod(ph7_class *pClass, ph7_class_method *pMeth) {
SyString *pName = &pMeth->sFunc.sName; SyString *pName = &pMeth->sFunc.sName;
sxi32 rc; sxi32 rc;
pMeth->pClass = pClass;
rc = SyHashInsert(&pClass->hMethod, (const void *)pName->zString, pName->nByte, pMeth); rc = SyHashInsert(&pClass->hMethod, (const void *)pName->zString, pName->nByte, pMeth);
return rc; return rc;
} }

View File

@ -1093,6 +1093,7 @@ struct ph7_class_method {
SyString sVmName; /* Automatically generated name assigned to this method. SyString sVmName; /* Automatically generated name assigned to this method.
* Typically this is "[class_name__method_name@random_string]" * Typically this is "[class_name__method_name@random_string]"
*/ */
ph7_class *pClass; /* Class the method was declared */
sxi32 iProtection; /* Protection level [i.e: public,private,protected] */ sxi32 iProtection; /* Protection level [i.e: public,private,protected] */
sxi32 iFlags; /* Methods configuration */ sxi32 iFlags; /* Methods configuration */
sxi32 iCloneDepth; /* Clone depth [Only used by the magic method __clone ] */ sxi32 iCloneDepth; /* Clone depth [Only used by the magic method __clone ] */