X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fconfig%2Ffrom-kvjson-visitor.hpp;h=c355fc2a134f30845f0abfcd3ff903b8b42b17bc;hb=refs%2Fchanges%2F49%2F34249%2F1;hp=e01774e607ddc5265270d8d46d04942d480a5d98;hpb=6d63eb3b5fa8ce01447fbb2ddc2ba2a50113ae0e;p=archive%2Fplatform%2Fcore%2Fsystem%2FlibConfig.git diff --git a/src/config/from-kvjson-visitor.hpp b/src/config/from-kvjson-visitor.hpp index e01774e..c355fc2 100644 --- a/src/config/from-kvjson-visitor.hpp +++ b/src/config/from-kvjson-visitor.hpp @@ -151,10 +151,13 @@ private: std::string k = key(mKeyPrefix, name); int length = getArraySize(k, object); if (length < 0) { - throw ConfigException("Missing json field " + key(mKeyPrefix, name)); + throw ConfigException("Missing array length " + k); } value.resize(static_cast(length)); FromKVJsonVisitor visitor(*this, name, false); + if (mStorePtr->exists(k)) { + visitor.mObject = nullptr; + } for (int i = 0; i < length; ++i) { visitor.getValue(i, value[i]); } @@ -197,6 +200,9 @@ private: int length = getArraySize(k, mObject); value.resize(static_cast(length)); FromKVJsonVisitor visitor(*this, i, false); + if (mStorePtr->exists(k)) { + visitor.mObject = nullptr; + } for (int i = 0; i < length; ++i) { visitor.getValue(i, value[i]); }