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