# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_INT32_T
# Checks for library functions.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <stdint.h>
#include <assert.h>
#include <jansson.h>
#include <string.h>
#include <stdarg.h>
#include <assert.h>
-#include <stdint.h>
#include <jansson.h>
#include "jansson_private.h"
*/
#include <string.h>
-#include <stdint.h>
+#include "utf.h"
int utf8_encode(int32_t codepoint, char *buffer, int *size)
{
#ifndef UTF_H
#define UTF_H
+#include <config.h>
+
+#ifdef HAVE_INTTYPES_H
+/* inttypes.h includes stdint.h in a standard environment, so there's
+no need to include stdint.h separately. If inttypes.h doesn't define
+int32_t, it's defined in config.h. */
+#include <inttypes.h>
+#endif
+
int utf8_encode(int codepoint, char *buffer, int *size);
int utf8_check_first(char byte);
{
static json_t the_true = {
.type = JSON_TRUE,
- .refcount = (unsigned int)1
+ .refcount = (unsigned int)-1
};
return &the_true;
}
{
static json_t the_false = {
.type = JSON_FALSE,
- .refcount = (unsigned int)1
+ .refcount = (unsigned int)-1
};
return &the_false;
}
{
static json_t the_null = {
.type = JSON_NULL,
- .refcount = (unsigned int)1
+ .refcount = (unsigned int)-1
};
return &the_null;
}
fail("json_null failed");
json_decref(value);
+ /* Test reference counting on singletons (true, false, null) */
+ value = json_true();
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting true works incorrectly");
+ json_decref(value);
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting true works incorrectly");
+ json_incref(value);
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting true works incorrectly");
+
+ value = json_false();
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting false works incorrectly");
+ json_decref(value);
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting false works incorrectly");
+ json_incref(value);
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting false works incorrectly");
+
+ value = json_null();
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting null works incorrectly");
+ json_decref(value);
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting null works incorrectly");
+ json_incref(value);
+ if(value->refcount != (unsigned int)-1)
+ fail("refcounting null works incorrectly");
+
return 0;
}