Commits

wlav committed 4d9e469

temp levels for CINT

Comments (0)

Files changed (1)

pypy/module/cppyy/src/cintcwrapper.cxx

 #define G__SETMEMFUNCENV      (long)0x7fff0035
 #define G__NOP                (long)0x7fff00ff
 
-
-/* ROOT meta internals ---------------------------------------------------- */
 namespace {
 
 class Cppyy_OpenedTClass : public TDictionary {
 public:
-   mutable TObjArray *fStreamerInfo;    //Array of TVirtualStreamerInfo
-   mutable std::map<std::string, TObjArray*> *fConversionStreamerInfo; //Array of the streamer infos derived from another class.
-   TList             *fRealData;        //linked list for persistent members including base classes
-   TList             *fBase;            //linked list for base classes
-   TList             *fData;            //linked list for data members
-   TList             *fMethod;          //linked list for methods
-   TList             *fAllPubData;      //all public data members (including from base classes)
-   TList             *fAllPubMethod;    //all public methods (including from base classes)
+    mutable TObjArray* fStreamerInfo;    //Array of TVirtualStreamerInfo
+    mutable std::map<std::string, TObjArray*>* fConversionStreamerInfo; //Array of the streamer infos derived from another class.
+    TList*             fRealData;       //linked list for persistent members including base classes
+    TList*             fBase;           //linked list for base classes
+    TList*             fData;           //linked list for data members
+    TList*             fMethod;         //linked list for methods
+    TList*             fAllPubData;     //all public data members (including from base classes)
+    TList*             fAllPubMethod;   //all public methods (including from base classes)
 };
 
 } // unnamed namespace
     G__value result;
     G__setnull(&result);
 
-    G__LockCriticalSection();      // is recursive lock
+    G__LockCriticalSection();      // CINT-level lock, is recursive
+    G__settemplevel(1);
+
     long index = (long)&method;
     G__CurrentCall(G__SETMEMFUNCENV, 0, &index);
     
         G__store_struct_offset = (long)self;
 
     meth(&result, 0, libp, 0);
-
     if (self)
         G__store_struct_offset = store_struct_offset;
 
         G__security_recover(0);    // 0 ensures silence
 
     G__CurrentCall(G__NOP, 0, 0);
+    G__settemplevel(-1);
     G__UnlockCriticalSection();
 
     return result;