Use AC_C_INLINE autoconf macro, include config.h where needed, and add
a define of JSON_INLINE to jansson.h that has the correct "inline"
keyword.
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_INT32_T
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_INT32_T
+AC_C_INLINE
+case $ac_cv_c_inline in
+ yes) json_inline=inline;;
+ no) json_inline=;;
+ *) json_inline=$ac_cv_c_inline;;
+esac
+AC_SUBST([json_inline])
+
# Checks for library functions.
AC_CONFIG_FILES([
# Checks for library functions.
AC_CONFIG_FILES([
Makefile
doc/Makefile
src/Makefile
Makefile
doc/Makefile
src/Makefile
test/Makefile
test/bin/Makefile
test/suites/Makefile
test/Makefile
test/bin/Makefile
test/suites/Makefile
* it under the terms of the MIT license. See LICENSE for details.
*/
* it under the terms of the MIT license. See LICENSE for details.
*/
#include <stdlib.h>
#include "hashtable.h"
#include <stdlib.h>
#include "hashtable.h"
+#ifndef __cplusplus
+#define JSON_INLINE @json_inline@
+#else
+#define JSON_INLINE inline
json_t *json_false(void);
json_t *json_null(void);
json_t *json_false(void);
json_t *json_null(void);
-static inline json_t *json_incref(json_t *json)
+static JSON_INLINE
+json_t *json_incref(json_t *json)
{
if(json && json->refcount != (unsigned int)-1)
++json->refcount;
{
if(json && json->refcount != (unsigned int)-1)
++json->refcount;
/* do not call json_delete directly */
void json_delete(json_t *json);
/* do not call json_delete directly */
void json_delete(json_t *json);
-static inline void json_decref(json_t *json)
+static JSON_INLINE
+void json_decref(json_t *json)
{
if(json && json->refcount != (unsigned int)-1 && --json->refcount == 0)
json_delete(json);
{
if(json && json->refcount != (unsigned int)-1 && --json->refcount == 0)
json_delete(json);
const char *json_object_iter_key(void *iter);
json_t *json_object_iter_value(void *iter);
const char *json_object_iter_key(void *iter);
json_t *json_object_iter_value(void *iter);
int json_object_set(json_t *object, const char *key, json_t *value)
{
return json_object_set_new(object, key, json_incref(value));
}
int json_object_set(json_t *object, const char *key, json_t *value)
{
return json_object_set_new(object, key, json_incref(value));
}
int json_object_set_nocheck(json_t *object, const char *key, json_t *value)
{
return json_object_set_new_nocheck(object, key, json_incref(value));
int json_object_set_nocheck(json_t *object, const char *key, json_t *value)
{
return json_object_set_new_nocheck(object, key, json_incref(value));
int json_array_clear(json_t *array);
int json_array_extend(json_t *array, json_t *other);
int json_array_clear(json_t *array);
int json_array_extend(json_t *array, json_t *other);
int json_array_set(json_t *array, unsigned int index, json_t *value)
{
return json_array_set_new(array, index, json_incref(value));
}
int json_array_set(json_t *array, unsigned int index, json_t *value)
{
return json_array_set_new(array, index, json_incref(value));
}
int json_array_append(json_t *array, json_t *value)
{
return json_array_append_new(array, json_incref(value));
}
int json_array_append(json_t *array, json_t *value)
{
return json_array_append_new(array, json_incref(value));
}
int json_array_insert(json_t *array, unsigned int index, json_t *value)
{
return json_array_insert_new(array, index, json_incref(value));
int json_array_insert(json_t *array, unsigned int index, json_t *value)
{
return json_array_insert_new(array, index, json_incref(value));
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>