diff --git a/cint/inc/Method.h b/cint/inc/Method.h index 90a7314bbe332ed974923e1c76c6e3a3bfb843ab..819eb7d1695ee01bf51c885fc0e6b9caf43af98f 100644 --- a/cint/inc/Method.h +++ b/cint/inc/Method.h @@ -74,13 +74,8 @@ G__MethodInfo { void* PointerToFunc(); #endif G__ClassInfo* MemberOf() { return(belongingclass); } - struct G__friendtag* GetFriendInfo() { - if(IsValid()) { - struct G__ifunc_table *ifunc=(struct G__ifunc_table*)handle; - return(ifunc->friendtag[index]); - } - else return 0; - } + int GetDefiningScopeTagnum(); + struct G__friendtag* GetFriendInfo(); void SetGlobalcomp(int globalcomp); int IsValid(); int SetFilePos(const char* fname); @@ -101,6 +96,9 @@ G__MethodInfo { void SetIsVirtual(int isvirtual); void SetVtblBasetagnum(int basetagnum); + void SetUserParam(void*); + void *GetUserParam(); + protected: long handle; long index; @@ -109,6 +107,7 @@ G__MethodInfo { #endif G__ClassInfo* belongingclass; G__TypeInfo type; + }; } // namespace Cint diff --git a/cint/src/Method.cxx b/cint/src/Method.cxx index 191e540bc7157c0257732b8f43736a688bb07fea..05e0748134edd314de07c69fc1bfba361db96cd2 100644 --- a/cint/src/Method.cxx +++ b/cint/src/Method.cxx @@ -742,3 +742,42 @@ void Cint::G__MethodInfo::SetVtblBasetagnum(int basetagnum) { ifunc->vtblbasetagnum[index] = (short)basetagnum; } +/////////////////////////////////////////////////////////////////////////// +// GetFriendInfo +/////////////////////////////////////////////////////////////////////////// +G__friendtag* Cint::G__MethodInfo::GetFriendInfo() { + if(IsValid()) { + struct G__ifunc_table *ifunc=(struct G__ifunc_table*)handle; + return(ifunc->friendtag[index]); + } + else return 0; +} +/////////////////////////////////////////////////////////////////////////// +// GetDefiningScopeTagnum +/////////////////////////////////////////////////////////////////////////// +int Cint::G__MethodInfo::GetDefiningScopeTagnum() +{ + if (IsValid()) { + return ifunc()->tagnum; + } + else return -1; +} +/////////////////////////////////////////////////////////////////////////// +// SetUserParam +/////////////////////////////////////////////////////////////////////////// +void Cint::G__MethodInfo::SetUserParam(void *user) +{ + if (IsValid()) { + ifunc()->userparam[index] = user; + } +} +/////////////////////////////////////////////////////////////////////////// +// GetUserParam +/////////////////////////////////////////////////////////////////////////// +void *Cint::G__MethodInfo::GetUserParam() +{ + if (IsValid()) { + return ifunc()->userparam[index]; + } + else return 0; +}