summaryrefslogtreecommitdiffstats
path: root/ahl-binding/jsonc_utils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ahl-binding/jsonc_utils.hpp')
-rw-r--r--ahl-binding/jsonc_utils.hpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/ahl-binding/jsonc_utils.hpp b/ahl-binding/jsonc_utils.hpp
index 5e82fca..097eda4 100644
--- a/ahl-binding/jsonc_utils.hpp
+++ b/ahl-binding/jsonc_utils.hpp
@@ -81,11 +81,15 @@ inline std::string& jcast<std::string>(std::string& v, json_object* o)
template<class T>
inline T& jcast(T& v, json_object* o, std::string field)
{
- return jcast<T>(v, json_object_object_get(o, field.c_str()));
+ json_object * value;
+ json_object_object_get_ex(o, field.c_str(), &value);
+ return jcast<T>(v, value);
}
template<class T>
inline T& jcast_array(T& v, json_object* o, std::string field)
{
- return jcast_array<T>(v, json_object_object_get(o, field.c_str()));
+ json_object * value;
+ json_object_object_get_ex(o, field.c_str(), &value);
+ return jcast_array<T>(v, value);
}