Move max() to jansson_private.h, define only if not already defined

On some platforms (Visual C++ for one) the standard library already
defines max() as a macro.
This commit is contained in:
Petri Lehtinen 2010-09-05 20:54:37 +03:00
parent e3654c2245
commit 06eb436008
5 changed files with 6 additions and 16 deletions

View File

@ -11,7 +11,6 @@ libjansson_la_SOURCES = \
strbuffer.h \ strbuffer.h \
utf.c \ utf.c \
utf.h \ utf.h \
util.h \
value.c value.c
libjansson_la_LDFLAGS = \ libjansson_la_LDFLAGS = \
-export-symbols-regex '^json_' \ -export-symbols-regex '^json_' \

View File

@ -15,6 +15,11 @@
#define container_of(ptr_, type_, member_) \ #define container_of(ptr_, type_, member_) \
((type_ *)((char *)ptr_ - offsetof(type_, member_))) ((type_ *)((char *)ptr_ - offsetof(type_, member_)))
/* On some platforms, max() may already be defined */
#ifndef max
#define max(a, b) ((a) > (b) ? (a) : (b))
#endif
typedef struct { typedef struct {
json_t json; json_t json;
hashtable_t hashtable; hashtable_t hashtable;

View File

@ -8,8 +8,8 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "jansson_private.h"
#include "strbuffer.h" #include "strbuffer.h"
#include "util.h"
#define STRBUFFER_MIN_SIZE 16 #define STRBUFFER_MIN_SIZE 16
#define STRBUFFER_FACTOR 2 #define STRBUFFER_FACTOR 2

View File

@ -1,13 +0,0 @@
/*
* Copyright (c) 2009, 2010 Petri Lehtinen <petri@digip.org>
*
* Jansson is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*/
#ifndef UTIL_H
#define UTIL_H
#define max(a, b) ((a) > (b) ? (a) : (b))
#endif

View File

@ -15,7 +15,6 @@
#include "hashtable.h" #include "hashtable.h"
#include "jansson_private.h" #include "jansson_private.h"
#include "utf.h" #include "utf.h"
#include "util.h"
static JSON_INLINE void json_init(json_t *json, json_type type) static JSON_INLINE void json_init(json_t *json, json_type type)