From e29dcce40ff2f58031eb2dfd362193cdc3143548 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 9 Nov 2017 00:07:40 +0100 Subject: [PATCH] Only consider public members Otherwise the compiler would complain about accessibility anyways. --- generator/jsonserializationcodegenerator.cpp | 8 ++++++-- generator/tests/structs.h | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/generator/jsonserializationcodegenerator.cpp b/generator/jsonserializationcodegenerator.cpp index 423bcd1..f397ea9 100644 --- a/generator/jsonserializationcodegenerator.cpp +++ b/generator/jsonserializationcodegenerator.cpp @@ -103,7 +103,9 @@ void JsonSerializationCodeGenerator::generate(ostream &os) const } os << " // push members\n"; for (const clang::FieldDecl *field : relevantClass.record->fields()) { - os << " push(reflectable." << field->getName() << ", \"" << field->getName() << "\", value, allocator);\n"; + if (field->getAccess() == clang::AS_public) { + os << " push(reflectable." << field->getName() << ", \"" << field->getName() << "\", value, allocator);\n"; + } } os << "}\n"; @@ -126,7 +128,9 @@ void JsonSerializationCodeGenerator::generate(ostream &os) const " }\n" " // pull members\n"; for (const clang::FieldDecl *field : relevantClass.record->fields()) { - os << " pull(reflectable." << field->getName() << ", \"" << field->getName() << "\", value, errors);\n"; + if (field->getAccess() == clang::AS_public) { + os << " pull(reflectable." << field->getName() << ", \"" << field->getName() << "\", value, errors);\n"; + } } os << " // restore error context for previous record\n" " if (errors) {\n" diff --git a/generator/tests/structs.h b/generator/tests/structs.h index 6588cd9..8ebf683 100644 --- a/generator/tests/structs.h +++ b/generator/tests/structs.h @@ -23,6 +23,9 @@ struct TestStruct : public JsonSerializable { int someInt = 0; string someString = "foo"; string yetAnotherString = "bar"; + +private: + string privateString = "not going to be serialized"; }; /*!