diff options
author | Enrico Granata <egranata@apple.com> | 2012-02-29 03:28:49 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2012-02-29 03:28:49 +0000 |
commit | 7bc0ec3aad663a2c81fddf9da38dba46bba6be19 (patch) | |
tree | 3c6cb745570d4095b37a18dd0f6cbacf04e79eaf /lldb/source/API/SBCommandInterpreter.cpp | |
parent | 3203f6b9daa558443f406686522780d0271d7824 (diff) | |
download | llvm-7bc0ec3aad663a2c81fddf9da38dba46bba6be19.zip llvm-7bc0ec3aad663a2c81fddf9da38dba46bba6be19.tar.gz llvm-7bc0ec3aad663a2c81fddf9da38dba46bba6be19.tar.bz2 |
This commit:
a) adds a Python summary provider for NSDate
b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around
c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side
d) contains much needed performance improvements:
1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time
2) redundant memory reads in the Python ObjC runtime wrapper are eliminated
3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object
e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure
llvm-svn: 151703
Diffstat (limited to 'lldb/source/API/SBCommandInterpreter.cpp')
-rw-r--r-- | lldb/source/API/SBCommandInterpreter.cpp | 60 |
1 files changed, 1 insertions, 59 deletions
diff --git a/lldb/source/API/SBCommandInterpreter.cpp b/lldb/source/API/SBCommandInterpreter.cpp index cbf2f91..66ebf69 100644 --- a/lldb/source/API/SBCommandInterpreter.cpp +++ b/lldb/source/API/SBCommandInterpreter.cpp @@ -312,59 +312,11 @@ SBCommandInterpreter::GetArgumentDescriptionAsCString (const lldb::CommandArgume #ifndef LLDB_DISABLE_PYTHON -extern "C" bool -LLDBSwigPythonBreakpointCallbackFunction -( - const char *python_function_name, - const char *session_dictionary_name, - const lldb::StackFrameSP& sb_frame, - const lldb::BreakpointLocationSP& sb_bp_loc -); - -extern "C" std::string -LLDBSwigPythonCallTypeScript -( - const char *python_function_name, - const char *session_dictionary_name, - const lldb::ValueObjectSP& valobj_sp -); - -extern "C" void* -LLDBSwigPythonCreateSyntheticProvider -( - const std::string python_class_name, - const char *session_dictionary_name, - const lldb::ValueObjectSP& valobj_sp -); - - -extern "C" uint32_t LLDBSwigPython_CalculateNumChildren (void *implementor); -extern "C" void* LLDBSwigPython_GetChildAtIndex (void *implementor, uint32_t idx); -extern "C" int LLDBSwigPython_GetIndexOfChildWithName (void *implementor, const char* child_name); -extern "C" void* LLDBSWIGPython_CastPyObjectToSBValue (void* data); -extern "C" void LLDBSwigPython_UpdateSynthProviderInstance (void* implementor); - -extern "C" bool LLDBSwigPythonCallCommand -( - const char *python_function_name, - const char *session_dictionary_name, - lldb::DebuggerSP& debugger, - const char* args, - std::string& err_msg, - lldb_private::CommandReturnObject& cmd_retobj -); // Defined in the SWIG source file extern "C" void init_lldb(void); -extern "C" bool LLDBSwigPythonCallModuleInit -( - const std::string python_module_name, - const char *session_dictionary_name, - lldb::DebuggerSP& debugger -); - #else extern "C" void init_lldb(void); @@ -385,17 +337,7 @@ SBCommandInterpreter::InitializeSWIG () { g_initialized = true; #ifndef LLDB_DISABLE_PYTHON - ScriptInterpreter::InitializeInterpreter (init_lldb, - LLDBSwigPythonBreakpointCallbackFunction, - LLDBSwigPythonCallTypeScript, - LLDBSwigPythonCreateSyntheticProvider, - LLDBSwigPython_CalculateNumChildren, - LLDBSwigPython_GetChildAtIndex, - LLDBSwigPython_GetIndexOfChildWithName, - LLDBSWIGPython_CastPyObjectToSBValue, - LLDBSwigPython_UpdateSynthProviderInstance, - LLDBSwigPythonCallCommand, - LLDBSwigPythonCallModuleInit); + ScriptInterpreter::InitializeInterpreter (init_lldb); #endif } } |