1namespace lldb_private { 2namespace python { 3 4PythonObject ToSWIGHelper(void *obj, swig_type_info *info) { 5 return {PyRefType::Owned, SWIG_NewPointerObj(obj, info, SWIG_POINTER_OWN)}; 6} 7 8PythonObject ToSWIGWrapper(std::unique_ptr<lldb::SBValue> value_sb) { 9 return ToSWIGHelper(value_sb.release(), SWIGTYPE_p_lldb__SBValue); 10} 11 12PythonObject ToSWIGWrapper(lldb::ValueObjectSP value_sp) { 13 return ToSWIGWrapper(std::make_unique<lldb::SBValue>(std::move(value_sp))); 14} 15 16PythonObject ToSWIGWrapper(lldb::TargetSP target_sp) { 17 return ToSWIGHelper(new lldb::SBTarget(std::move(target_sp)), 18 SWIGTYPE_p_lldb__SBTarget); 19} 20 21PythonObject ToSWIGWrapper(lldb::ProcessSP process_sp) { 22 return ToSWIGHelper(new lldb::SBProcess(std::move(process_sp)), 23 SWIGTYPE_p_lldb__SBProcess); 24} 25 26PythonObject ToSWIGWrapper(lldb::ThreadPlanSP thread_plan_sp) { 27 return ToSWIGHelper(new lldb::SBThreadPlan(std::move(thread_plan_sp)), 28 SWIGTYPE_p_lldb__SBThreadPlan); 29} 30 31PythonObject ToSWIGWrapper(lldb::BreakpointSP breakpoint_sp) { 32 return ToSWIGHelper(new lldb::SBBreakpoint(std::move(breakpoint_sp)), 33 SWIGTYPE_p_lldb__SBBreakpoint); 34} 35 36PythonObject ToSWIGWrapper(const Status& status) { 37 return ToSWIGHelper(new lldb::SBError(status), SWIGTYPE_p_lldb__SBError); 38} 39 40PythonObject ToSWIGWrapper(std::unique_ptr<lldb::SBStream> stream_sb) { 41 return ToSWIGHelper(stream_sb.release(), SWIGTYPE_p_lldb__SBStream); 42} 43 44PythonObject ToSWIGWrapper(std::unique_ptr<lldb::SBStructuredData> data_sb) { 45 return ToSWIGHelper(data_sb.release(), SWIGTYPE_p_lldb__SBStructuredData); 46} 47 48PythonObject ToSWIGWrapper(const StructuredDataImpl &data_impl) { 49 return ToSWIGWrapper(std::make_unique<lldb::SBStructuredData>(data_impl)); 50} 51 52PythonObject ToSWIGWrapper(lldb::ThreadSP thread_sp) { 53 return ToSWIGHelper(new lldb::SBThread(std::move(thread_sp)), 54 SWIGTYPE_p_lldb__SBThread); 55} 56 57PythonObject ToSWIGWrapper(lldb::StackFrameSP frame_sp) { 58 return ToSWIGHelper(new lldb::SBFrame(std::move(frame_sp)), 59 SWIGTYPE_p_lldb__SBFrame); 60} 61 62PythonObject ToSWIGWrapper(lldb::DebuggerSP debugger_sp) { 63 return ToSWIGHelper(new lldb::SBDebugger(std::move(debugger_sp)), 64 SWIGTYPE_p_lldb__SBDebugger); 65} 66 67PythonObject ToSWIGWrapper(lldb::WatchpointSP watchpoint_sp) { 68 return ToSWIGHelper(new lldb::SBWatchpoint(std::move(watchpoint_sp)), 69 SWIGTYPE_p_lldb__SBWatchpoint); 70} 71 72PythonObject ToSWIGWrapper(lldb::BreakpointLocationSP bp_loc_sp) { 73 return ToSWIGHelper(new lldb::SBBreakpointLocation(std::move(bp_loc_sp)), 74 SWIGTYPE_p_lldb__SBBreakpointLocation); 75} 76 77PythonObject ToSWIGWrapper(lldb::ExecutionContextRefSP ctx_sp) { 78 return ToSWIGHelper(new lldb::SBExecutionContext(std::move(ctx_sp)), 79 SWIGTYPE_p_lldb__SBExecutionContext); 80} 81 82PythonObject ToSWIGWrapper(lldb::TypeImplSP type_impl_sp) { 83 return ToSWIGHelper(new lldb::SBType(type_impl_sp), SWIGTYPE_p_lldb__SBType); 84} 85 86PythonObject ToSWIGWrapper(const TypeSummaryOptions &summary_options) { 87 return ToSWIGHelper(new lldb::SBTypeSummaryOptions(summary_options), 88 SWIGTYPE_p_lldb__SBTypeSummaryOptions); 89} 90 91PythonObject ToSWIGWrapper(const SymbolContext &sym_ctx) { 92 return ToSWIGHelper(new lldb::SBSymbolContext(sym_ctx), 93 SWIGTYPE_p_lldb__SBSymbolContext); 94} 95 96ScopedPythonObject<lldb::SBCommandReturnObject> 97ToSWIGWrapper(CommandReturnObject &cmd_retobj) { 98 return ScopedPythonObject<lldb::SBCommandReturnObject>( 99 new lldb::SBCommandReturnObject(cmd_retobj), 100 SWIGTYPE_p_lldb__SBCommandReturnObject); 101} 102 103ScopedPythonObject<lldb::SBEvent> ToSWIGWrapper(Event *event) { 104 return ScopedPythonObject<lldb::SBEvent>(new lldb::SBEvent(event), 105 SWIGTYPE_p_lldb__SBEvent); 106} 107 108} // namespace python 109} // namespace lldb_private 110