diff --git a/engine/oop.c b/engine/oop.c index d861c7a..1b8455f 100644 --- a/engine/oop.c +++ b/engine/oop.c @@ -192,7 +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) { SyString *pName = &pMeth->sFunc.sName; sxi32 rc; - pMeth->pClass = pClass; + pMeth->sFunc.pClass = pClass; rc = SyHashInsert(&pClass->hMethod, (const void *)pName->zString, pName->nByte, pMeth); return rc; } diff --git a/include/ph7int.h b/include/ph7int.h index 2c3b6cc..a83c1a5 100644 --- a/include/ph7int.h +++ b/include/ph7int.h @@ -996,6 +996,7 @@ struct ph7_vm_func { SySet aArgs; /* Expected arguments (ph7_vm_func_arg instance) */ SySet aStatic; /* Static variable (ph7_vm_func_static_var instance) */ SyString sName; /* Function name */ + ph7_class *pClass; /* Class the method was declared */ SySet aByteCode; /* Compiled function body */ SySet aClosureEnv; /* Closure environment (ph7_vm_func_closure_env instace) */ sxi32 iFlags; /* VM function configuration */ @@ -1096,7 +1097,6 @@ struct ph7_class_method { SyString sVmName; /* Automatically generated name assigned to this method. * 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 iFlags; /* Methods configuration */ sxi32 iCloneDepth; /* Clone depth [Only used by the magic method __clone ] */