Skip to content

Commit 0d03348

Browse files
committed
[bugfix] fix mem leak when python call cpp
1 parent 77a9bb8 commit 0d03348

8 files changed

Lines changed: 20 additions & 20 deletions

File tree

python/PyCGraph.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ PYBIND11_MODULE(PyCGraph, m) {
7272
.def("tryLock", &GParam::tryLock,
7373
py::call_guard<py::gil_scoped_release>());
7474

75-
py::class_<PyGPipeline, std::unique_ptr<PyGPipeline, py::nodelete> >(m, "GPipeline")
75+
py::class_<PyGPipeline>(m, "GPipeline")
7676
.def(py::init<>())
7777
.def("init", &PyGPipeline::init)
7878
.def("createGParam", &PyGPipeline::__createGParam_4py,
@@ -128,43 +128,47 @@ PYBIND11_MODULE(PyCGraph, m) {
128128
py::arg("loop") = CGRAPH_DEFAULT_LOOP_TIMES);
129129

130130
py::class_<PyGCluster, GElement, std::unique_ptr<PyGCluster, py::nodelete> >(m, "GCluster")
131-
.def(py::init<const CGraph::GElementPtrArr&>(),
131+
.def(py::init<const GElementPtrArr&>(),
132132
py::arg("elements") = GElementPtrArr{},
133133
py::keep_alive<1, 2>())
134134
.def("addGElements", &PyGCluster::__addGElements_4py,
135135
py::arg("elements"),
136136
py::keep_alive<1, 2>());
137137

138138
py::class_<PyGRegion, GElement, std::unique_ptr<PyGRegion, py::nodelete> >(m, "GRegion")
139-
.def(py::init<const CGraph::GElementPtrArr&>(),
139+
.def(py::init<const GElementPtrArr&>(),
140140
py::arg("elements") = GElementPtrArr{},
141141
py::keep_alive<1, 2>())
142142
.def("addGElements", &PyGRegion::__addGElements_4py,
143143
py::arg("elements"),
144144
py::keep_alive<1, 2>());
145145

146146
py::class_<PywGCondition, GElement, std::unique_ptr<PywGCondition, py::nodelete> >(m, "GCondition")
147-
.def(py::init<const CGraph::GElementPtrArr&>(),
147+
.def(py::init<const GElementPtrArr&>(),
148148
py::arg("elements") = GElementPtrArr{},
149149
py::keep_alive<1, 2>())
150150
.def("getRange", &PywGCondition::__getRange_4py)
151151
.def("addGElements", &PywGCondition::__addGElements_4py,
152152
py::arg("elements"),
153153
py::keep_alive<1, 2>());
154154

155-
py::class_<PyGMultiCondition<CGraph::GMultiConditionType::SERIAL>, GElement>(m, "GSerialMultiCondition")
156-
.def(py::init<const CGraph::GElementPtrArr&>(),
155+
py::class_<PyGMultiCondition<GMultiConditionType::SERIAL>,
156+
GElement, std::unique_ptr<PyGMultiCondition<GMultiConditionType::SERIAL>,
157+
py::nodelete> >(m, "GSerialMultiCondition")
158+
.def(py::init<const GElementPtrArr&>(),
157159
py::arg("elements") = GElementPtrArr{},
158160
py::keep_alive<1, 2>())
159-
.def("addGElements", &PyGMultiCondition<CGraph::GMultiConditionType::SERIAL>::__addGElements_4py,
161+
.def("addGElements", &PyGMultiCondition<GMultiConditionType::SERIAL>::__addGElements_4py,
160162
py::arg("elements"),
161163
py::keep_alive<1, 2>());
162164

163-
py::class_<PyGMultiCondition<CGraph::GMultiConditionType::PARALLEL>, GElement>(m, "GParallelMultiCondition")
164-
.def(py::init<const CGraph::GElementPtrArr&>(),
165+
py::class_<PyGMultiCondition<GMultiConditionType::PARALLEL>,
166+
GElement, std::unique_ptr<PyGMultiCondition<GMultiConditionType::PARALLEL>,
167+
py::nodelete> >(m, "GParallelMultiCondition")
168+
.def(py::init<const GElementPtrArr&>(),
165169
py::arg("elements") = GElementPtrArr{},
166170
py::keep_alive<1, 2>())
167-
.def("addGElements", &PyGMultiCondition<CGraph::GMultiConditionType::PARALLEL>::__addGElements_4py,
171+
.def("addGElements", &PyGMultiCondition<GMultiConditionType::PARALLEL>::__addGElements_4py,
168172
py::arg("elements"),
169173
py::keep_alive<1, 2>());
170174
}

python/tutorial/T02-Cluster.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Desc:
77
"""
88

9-
from PyCGraph import GPipeline, GCluster, CStatus
9+
from PyCGraph import GPipeline, GCluster
1010

1111
from MyGNode.MyNode1 import MyNode1
1212
from MyGNode.MyNode2 import MyNode2

python/tutorial/T03-Region.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Desc:
77
"""
88

9-
from PyCGraph import GPipeline, GRegion, CStatus
9+
from PyCGraph import GPipeline, GRegion
1010

1111
from MyGNode.MyNode1 import MyNode1
1212
from MyGNode.MyNode2 import MyNode2

python/tutorial/T04-Complex.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Desc:
77
"""
88

9-
from PyCGraph import GPipeline, GCluster, GRegion, CStatus
9+
from PyCGraph import GPipeline, GCluster, GRegion
1010

1111
from MyGNode.MyNode1 import MyNode1
1212
from MyGNode.MyNode2 import MyNode2

python/tutorial/T05-Param.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Desc:
77
"""
88

9-
from PyCGraph import GNode, GPipeline, CStatus
9+
from PyCGraph import GNode, GPipeline
1010

1111
from MyGNode.MyWriteParamNode import MyWriteParamNode
1212
from MyGNode.MyReadParamNode import MyReadParamNode

python/tutorial/T06-Condition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Desc:
77
"""
88

9-
from PyCGraph import GPipeline, CStatus
9+
from PyCGraph import GPipeline
1010

1111
from MyGNode.MyNode1 import MyNode1
1212
from MyGNode.MyNode2 import MyNode2

python/tutorial/T14-Hold.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Desc:
77
"""
88

9-
from PyCGraph import GPipeline, CStatus
9+
from PyCGraph import GPipeline
1010

1111
from MyGNode.MyHoldNode import MyHoldNode
1212
from MyGNode.MyNode1 import MyNode1

src/GraphCtrl/GraphElement/GElement.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,6 @@ CStatus GElement::addManagers(GParamManagerPtr paramManager,
200200
this->setGParamManager(paramManager);
201201
this->setGEventManager(eventManager);
202202
this->setGStageManager(stageManager);
203-
if (aspect_manager_) {
204-
aspect_manager_->setGParamManager(paramManager);
205-
aspect_manager_->setGEventManager(eventManager);
206-
}
207203

208204
CGRAPH_FUNCTION_END
209205
}

0 commit comments

Comments
 (0)