Skip to content

Commit b3caeca

Browse files
aaronj0vgvassilev
authored andcommitted
Make GetDataMember use an out param
1 parent 41438c4 commit b3caeca

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

src/Cppyy.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ namespace Cppyy {
301301

302302
// data member reflection information ----------------------------------------
303303
CPPYY_IMPORT
304-
std::vector<TCppScope_t> GetDatamembers(TCppScope_t scope);
304+
void GetDatamembers(TCppScope_t scope, std::vector<TCppScope_t>& datamembers);
305305
CPPYY_IMPORT
306306
std::string GetDatamemberName(TCppScope_t scope, TCppIndex_t idata);
307307
CPPYY_IMPORT

src/Dispatcher.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,8 @@ bool CPyCppyy::InsertDispatcher(CPPScope* klass, PyObject* bases, PyObject* dct,
386386
// pull in data members that are protected
387387
bool setPublic = false;
388388
for (const auto& binfo : base_infos) {
389-
std::vector<Cppyy::TCppScope_t> datamems = Cppyy::GetDatamembers(binfo.btype);
389+
std::vector<Cppyy::TCppScope_t> datamems;
390+
Cppyy::GetDatamembers(binfo.btype, datamems);
390391
for (auto data : datamems) {
391392
if (Cppyy::IsProtectedData(data)) {
392393
const std::string dm_name = Cppyy::GetFinalName(data);

src/ProxyWrappers.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ static int BuildScopeProxyDict(Cppyy::TCppScope_t scope, PyObject* pyclass, cons
369369
Py_DECREF(dct);
370370

371371
// collect data members (including enums)
372-
std::vector<Cppyy::TCppScope_t> datamembers = Cppyy::GetDatamembers(scope);
372+
std::vector<Cppyy::TCppScope_t> datamembers;
373+
Cppyy::GetDatamembers(scope, datamembers);
373374
for (auto &datamember : datamembers) {
374375
// allow only public members
375376
if (!Cppyy::IsPublicData(datamember))

src/Pythonize.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1688,7 +1688,8 @@ bool CPyCppyy::Pythonize(PyObject* pyclass, Cppyy::TCppScope_t scope)
16881688
if (Cppyy::IsAggregate(((CPPClass*)pyclass)->fCppType) && name.compare(0, 5, "std::", 5) != 0) {
16891689
// create a pseudo-constructor to allow initializer-style object creation
16901690
Cppyy::TCppType_t kls = ((CPPClass*)pyclass)->fCppType;
1691-
std::vector<Cppyy::TCppScope_t> datamems = Cppyy::GetDatamembers(kls);
1691+
std::vector<Cppyy::TCppScope_t> datamems;
1692+
Cppyy::GetDatamembers(kls, datamems);
16921693
if (!datamems.empty()) {
16931694
std::string rname = name;
16941695
TypeManip::cppscope_to_legalname(rname);

0 commit comments

Comments
 (0)