Blob Blame History Raw
From 5b6d62259afbc1709d4437b8c488de429079cae0 Mon Sep 17 00:00:00 2001
From: Eric Haszlakiewicz <erh+git@nimenees.com>
Date: Tue, 12 Dec 2017 18:26:51 -0500
Subject: [PATCH] Apply gcc's "const" attribute to the json_c_object_sizeof()
 function as an optimizer hint.  Also, rename that function from
 json_object_sizeof().

---
 json_object.c | 2 +-
 json_object.h | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/json_object.c b/json_object.c
index f12d8f08d8..042477a71b 100644
--- a/json_object.c
+++ b/json_object.c
@@ -509,7 +509,7 @@ int json_object_object_length(const struct json_object *jso)
 	return lh_table_length(jso->o.c_object);
 }
 
-size_t json_object_sizeof(void)
+size_t json_c_object_sizeof(void)
 {
 	return sizeof(struct json_object);
 }
diff --git a/json_object.h b/json_object.h
index 6a2751d228..758efa6f1d 100644
--- a/json_object.h
+++ b/json_object.h
@@ -27,6 +27,12 @@
 #define THIS_FUNCTION_IS_DEPRECATED(func) func
 #endif
 
+#ifdef __GNUC__
+#define JSON_C_CONST_FUNCTION(func) func __attribute__((const))
+#else
+#define CONST_FUNCTION(func) func
+#endif
+
 #if defined(_MSC_VER) 
 #define JSON_EXPORT __declspec(dllexport)
 #else
@@ -395,7 +401,7 @@ JSON_EXPORT int json_object_object_length(const struct json_object* obj);
 /** Get the sizeof (struct json_object).
  * @returns a size_t with the sizeof (struct json_object)
  */
-JSON_EXPORT size_t json_object_sizeof(void);
+JSON_C_CONST_FUNCTION(JSON_EXPORT size_t json_c_object_sizeof(void));
 
 /** Add an object field to a json_object of type json_type_object
  *