mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-26 11:25:27 +00:00
<rdar://problem/15906684>
The way in which we were determining whether a python module had already been imported in the current session stopped working due to the IOHandler changes As a result, importing in a new debug session a module which had been imported in a previous session did not work This commit restores that functionality by checking for the module's presence in the session dictionary (which should be more correct anyway) llvm-svn: 201623
This commit is contained in:
parent
b9ea63c551
commit
bdab3dee8f
@ -98,6 +98,9 @@ namespace lldb_private {
|
||||
return m_py_obj != NULL;
|
||||
}
|
||||
|
||||
bool
|
||||
IsNULLOrNone () const;
|
||||
|
||||
protected:
|
||||
PyObject* m_py_obj;
|
||||
};
|
||||
|
@ -84,6 +84,12 @@ PythonObject::Str ()
|
||||
return PythonString(str);
|
||||
}
|
||||
|
||||
bool
|
||||
PythonObject::IsNULLOrNone () const
|
||||
{
|
||||
return ((m_py_obj == nullptr) || (m_py_obj == Py_None));
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// PythonString
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -2278,7 +2278,6 @@ ScriptInterpreterPython::LoadScriptingModule (const char* pathname,
|
||||
command_stream.Clear();
|
||||
command_stream.Printf("sys.modules.__contains__('%s')",basename.c_str());
|
||||
bool does_contain = false;
|
||||
int refcount = 0;
|
||||
// this call will succeed if the module was ever imported in any Debugger in the lifetime of the process
|
||||
// in which this LLDB framework is living
|
||||
bool was_imported_globally = (ExecuteOneLineWithReturn(command_stream.GetData(),
|
||||
@ -2288,10 +2287,7 @@ ScriptInterpreterPython::LoadScriptingModule (const char* pathname,
|
||||
// this call will fail if the module was not imported in this Debugger before
|
||||
command_stream.Clear();
|
||||
command_stream.Printf("sys.getrefcount(%s)",basename.c_str());
|
||||
bool was_imported_locally = (ExecuteOneLineWithReturn(command_stream.GetData(),
|
||||
ScriptInterpreterPython::eScriptReturnTypeInt,
|
||||
&refcount,
|
||||
ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false).SetSetLLDBGlobals(false)) && refcount > 0);
|
||||
bool was_imported_locally = !(GetSessionDictionary().GetItemForKey(basename.c_str()).IsNULLOrNone());
|
||||
|
||||
bool was_imported = (was_imported_globally || was_imported_locally);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user