File tree 1 file changed +19
-1
lines changed
1 file changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -1569,7 +1569,25 @@ r_object(RFILE *p)
1569
1569
PyErr_SetString (PyExc_ValueError , "bad marshal data (invalid reference)" );
1570
1570
break ;
1571
1571
}
1572
- v = PyList_GET_ITEM (p -> refs , n );
1572
+ for (;;) {
1573
+ v = PyList_GET_ITEM (p -> refs , n );
1574
+ if (!PyCode_Check (v ))
1575
+ break ;
1576
+ PyCodeObject * code = (PyCodeObject * )v ;
1577
+ if (_PyCode_IsHydrated (code )) {
1578
+ printf ("Not dehydrated!\n" );
1579
+ break ;
1580
+ }
1581
+ printf ("It's a dehydrated code object! %s - %d - %s\n" ,
1582
+ PyUnicode_AsUTF8 (code -> co_filename ),
1583
+ code -> co_firstlineno ,
1584
+ PyUnicode_AsUTF8 (code -> co_qualname ));
1585
+ v = (PyObject * )_PyCode_Hydrate (code );
1586
+ if (v == NULL )
1587
+ break ;
1588
+ }
1589
+ if (v == NULL )
1590
+ break ;
1573
1591
if (v == Py_None ) {
1574
1592
PyErr_SetString (PyExc_ValueError , "bad marshal data (invalid reference)" );
1575
1593
break ;
You can’t perform that action at this time.
0 commit comments