Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion fpconv.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@

#include "fpconv.h"

#ifdef _MSC_VER
#define snprintf _snprintf
#endif

/* Lua CJSON assumes the locale is the same for all threads within a
* process and doesn't change after initialisation.
*
Expand Down Expand Up @@ -124,7 +128,7 @@ double fpconv_strtod(const char *nptr, char **endptr)
/* Duplicate number into buffer */
if (buflen >= FPCONV_G_FMT_BUFSIZE) {
/* Handle unusually large numbers */
buf = malloc(buflen + 1);
buf = (char *)malloc(buflen + 1);
if (!buf) {
fprintf(stderr, "Out of memory");
abort();
Expand Down Expand Up @@ -196,10 +200,12 @@ int fpconv_g_fmt(char *str, double num, int precision)
return len;
}

#ifndef USE_INTERNAL_FPCONV
void fpconv_init()
{
fpconv_update_locale();
}
#endif

/* vi:ai et sw=4 ts=4:
*/
4 changes: 4 additions & 0 deletions fpconv.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
* -1.7976931348623e+308 */
# define FPCONV_G_FMT_BUFSIZE 32

#ifdef _MSC_VER
#define inline
#endif

#ifdef USE_INTERNAL_FPCONV
static inline void fpconv_init()
{
Expand Down
30 changes: 25 additions & 5 deletions lua_cjson.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,13 @@
#include <string.h>
#include <math.h>
#include <limits.h>

#ifdef __cplusplus
#include <lua.hpp>
#else
#include <lua.h>
#endif

#include <lauxlib.h>

#include "strbuf.h"
Expand All @@ -59,6 +65,14 @@
#define isinf(x) (!isnan(x) && isnan((x) - (x)))
#endif

#ifdef _MSC_VER
#define snprintf _snprintf
#define strncasecmp _strnicmp
#include <float.h>
#define isnan(x) _isnan(x)
#define isinf(x) (!isnan(x) && isnan((x) - (x)))
#endif

#define DEFAULT_SPARSE_CONVERT 0
#define DEFAULT_SPARSE_RATIO 2
#define DEFAULT_SPARSE_SAFE 10
Expand Down Expand Up @@ -193,7 +207,7 @@ static json_config_t *json_fetch_config(lua_State *l)
{
json_config_t *cfg;

cfg = lua_touserdata(l, lua_upvalueindex(1));
cfg = (json_config_t *)lua_touserdata(l, lua_upvalueindex(1));
if (!cfg)
luaL_error(l, "BUG: Unable to fetch CJSON configuration");

Expand Down Expand Up @@ -360,7 +374,7 @@ static int json_destroy_config(lua_State *l)
{
json_config_t *cfg;

cfg = lua_touserdata(l, 1);
cfg = (json_config_t *)lua_touserdata(l, 1);
if (cfg)
strbuf_free(&cfg->encode_buf);
cfg = NULL;
Expand All @@ -373,7 +387,7 @@ static void json_create_config(lua_State *l)
json_config_t *cfg;
int i;

cfg = lua_newuserdata(l, sizeof(*cfg));
cfg = (json_config_t *)lua_newuserdata(l, sizeof(*cfg));

/* Create GC method to clean up strbuf */
lua_newtable(l);
Expand Down Expand Up @@ -1407,7 +1421,13 @@ static int lua_cjson_safe_new(lua_State *l)
return 1;
}

int luaopen_cjson(lua_State *l)
#ifdef _MSC_VER
#define EXPORT_API __declspec(dllexport)
#else
#define EXPORT_API
#endif

int EXPORT_API luaopen_cjson(lua_State *l)
{
lua_cjson_new(l);

Expand All @@ -1421,7 +1441,7 @@ int luaopen_cjson(lua_State *l)
return 1;
}

int luaopen_cjson_safe(lua_State *l)
int EXPORT_API luaopen_cjson_safe(lua_State *l)
{
lua_cjson_safe_new(l);

Expand Down
12 changes: 6 additions & 6 deletions strbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ void strbuf_init(strbuf_t *s, int len)
s->reallocs = 0;
s->debug = 0;

s->buf = malloc(size);
s->buf = (char *)malloc(size);
if (!s->buf)
die("Out of memory");

Expand All @@ -69,7 +69,7 @@ strbuf_t *strbuf_new(int len)
{
strbuf_t *s;

s = malloc(sizeof(strbuf_t));
s = (strbuf_t *)malloc(sizeof(strbuf_t));
if (!s)
die("Out of memory");

Expand Down Expand Up @@ -173,7 +173,7 @@ void strbuf_resize(strbuf_t *s, int len)
}

s->size = newsize;
s->buf = realloc(s->buf, s->size);
s->buf = (char *)realloc(s->buf, s->size);
if (!s->buf)
die("Out of memory");
s->reallocs++;
Expand Down Expand Up @@ -221,12 +221,12 @@ void strbuf_append_fmt(strbuf_t *s, int len, const char *fmt, ...)
void strbuf_append_fmt_retry(strbuf_t *s, const char *fmt, ...)
{
va_list arg;
int fmt_len, try;
int fmt_len, attempt;
int empty_len;

/* If the first attempt to append fails, resize the buffer appropriately
* and try again */
for (try = 0; ; try++) {
for (attempt = 0; ; attempt++) {
va_start(arg, fmt);
/* Append the new formatted string */
/* fmt_len is the length of the string required, excluding the
Expand All @@ -238,7 +238,7 @@ void strbuf_append_fmt_retry(strbuf_t *s, const char *fmt, ...)

if (fmt_len <= empty_len)
break; /* SUCCESS */
if (try > 0)
if (attempt > 0)
die("BUG: length of formatted string changed");

strbuf_resize(s, s->length + fmt_len);
Expand Down
4 changes: 4 additions & 0 deletions strbuf.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ typedef struct {
#define STRBUF_DEFAULT_INCREMENT -2
#endif

#ifdef _MSC_VER
#define inline
#endif

/* Initialise */
extern strbuf_t *strbuf_new(int len);
extern void strbuf_init(strbuf_t *s, int len);
Expand Down