fizx-ordered_json 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +29 -0
- data/CHANGELOG +22 -0
- data/README +4 -0
- data/Rakefile +35 -0
- data/ext/Makefile +149 -0
- data/ext/json-c-0.8/AUTHORS +2 -0
- data/ext/json-c-0.8/COPYING +19 -0
- data/ext/json-c-0.8/ChangeLog +73 -0
- data/ext/json-c-0.8/INSTALL +229 -0
- data/ext/json-c-0.8/Makefile.am +43 -0
- data/ext/json-c-0.8/Makefile.in +734 -0
- data/ext/json-c-0.8/NEWS +1 -0
- data/ext/json-c-0.8/README +20 -0
- data/ext/json-c-0.8/aclocal.m4 +8794 -0
- data/ext/json-c-0.8/arraylist.c +93 -0
- data/ext/json-c-0.8/arraylist.h +45 -0
- data/ext/json-c-0.8/bits.h +27 -0
- data/ext/json-c-0.8/config.guess +1526 -0
- data/ext/json-c-0.8/config.h.in +121 -0
- data/ext/json-c-0.8/config.sub +1658 -0
- data/ext/json-c-0.8/configure +14243 -0
- data/ext/json-c-0.8/configure.in +33 -0
- data/ext/json-c-0.8/debug.c +98 -0
- data/ext/json-c-0.8/debug.h +42 -0
- data/ext/json-c-0.8/depcomp +530 -0
- data/ext/json-c-0.8/doc/html/annotated.html +40 -0
- data/ext/json-c-0.8/doc/html/arraylist_8h.html +234 -0
- data/ext/json-c-0.8/doc/html/bits_8h.html +144 -0
- data/ext/json-c-0.8/doc/html/config_8h.html +606 -0
- data/ext/json-c-0.8/doc/html/debug_8h.html +386 -0
- data/ext/json-c-0.8/doc/html/doxygen.css +473 -0
- data/ext/json-c-0.8/doc/html/doxygen.png +0 -0
- data/ext/json-c-0.8/doc/html/files.html +42 -0
- data/ext/json-c-0.8/doc/html/functions.html +206 -0
- data/ext/json-c-0.8/doc/html/functions_vars.html +206 -0
- data/ext/json-c-0.8/doc/html/globals.html +445 -0
- data/ext/json-c-0.8/doc/html/globals_defs.html +200 -0
- data/ext/json-c-0.8/doc/html/globals_enum.html +50 -0
- data/ext/json-c-0.8/doc/html/globals_eval.html +135 -0
- data/ext/json-c-0.8/doc/html/globals_func.html +194 -0
- data/ext/json-c-0.8/doc/html/globals_type.html +58 -0
- data/ext/json-c-0.8/doc/html/globals_vars.html +50 -0
- data/ext/json-c-0.8/doc/html/index.html +25 -0
- data/ext/json-c-0.8/doc/html/json_8h.html +26 -0
- data/ext/json-c-0.8/doc/html/json__object_8h.html +1042 -0
- data/ext/json-c-0.8/doc/html/json__object__private_8h.html +69 -0
- data/ext/json-c-0.8/doc/html/json__tokener_8h.html +360 -0
- data/ext/json-c-0.8/doc/html/json__util_8h.html +100 -0
- data/ext/json-c-0.8/doc/html/linkhash_8h.html +734 -0
- data/ext/json-c-0.8/doc/html/printbuf_8h.html +171 -0
- data/ext/json-c-0.8/doc/html/structarray__list.html +104 -0
- data/ext/json-c-0.8/doc/html/structjson__object.html +141 -0
- data/ext/json-c-0.8/doc/html/structjson__object__iter.html +87 -0
- data/ext/json-c-0.8/doc/html/structjson__tokener.html +206 -0
- data/ext/json-c-0.8/doc/html/structjson__tokener__srec.html +104 -0
- data/ext/json-c-0.8/doc/html/structlh__entry.html +105 -0
- data/ext/json-c-0.8/doc/html/structlh__table.html +275 -0
- data/ext/json-c-0.8/doc/html/structprintbuf.html +87 -0
- data/ext/json-c-0.8/doc/html/tab_b.gif +0 -0
- data/ext/json-c-0.8/doc/html/tab_l.gif +0 -0
- data/ext/json-c-0.8/doc/html/tab_r.gif +0 -0
- data/ext/json-c-0.8/doc/html/tabs.css +102 -0
- data/ext/json-c-0.8/doc/html/unionjson__object_1_1data.html +140 -0
- data/ext/json-c-0.8/install-sh +519 -0
- data/ext/json-c-0.8/json.h +31 -0
- data/ext/json-c-0.8/json.pc.in +11 -0
- data/ext/json-c-0.8/json_object.c +511 -0
- data/ext/json-c-0.8/json_object.h +310 -0
- data/ext/json-c-0.8/json_object_private.h +44 -0
- data/ext/json-c-0.8/json_tokener.c +517 -0
- data/ext/json-c-0.8/json_tokener.h +90 -0
- data/ext/json-c-0.8/json_util.c +122 -0
- data/ext/json-c-0.8/json_util.h +23 -0
- data/ext/json-c-0.8/linkhash.c +218 -0
- data/ext/json-c-0.8/linkhash.h +264 -0
- data/ext/json-c-0.8/ltmain.sh +7880 -0
- data/ext/json-c-0.8/missing +360 -0
- data/ext/json-c-0.8/printbuf.c +145 -0
- data/ext/json-c-0.8/printbuf.h +38 -0
- data/ext/json-c-0.8/test1.c +164 -0
- data/ext/json-c-0.8/test2.c +20 -0
- data/ext/json-c-0.8/test3.c +22 -0
- data/ext/ordered_json_c.c +199 -0
- data/lib/ordered_json.rb +26 -0
- data/ordered_json.gemspec +102 -0
- data/test/crashing_example.rb +1 -0
- data/test/ordered_json_test.rb +86 -0
- data/test/pretty.json +11 -0
- metadata +91 -50
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* $Id: arraylist.c,v 1.4 2006/01/26 02:16:28 mclark Exp $
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
|
5
|
+
* Michael Clark <michael@metaparadigm.com>
|
|
6
|
+
*
|
|
7
|
+
* This library is free software; you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the MIT license. See COPYING for details.
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#include "config.h"
|
|
13
|
+
|
|
14
|
+
#if STDC_HEADERS
|
|
15
|
+
# include <stdlib.h>
|
|
16
|
+
# include <string.h>
|
|
17
|
+
#endif /* STDC_HEADERS */
|
|
18
|
+
|
|
19
|
+
#if HAVE_STRINGS_H
|
|
20
|
+
# include <strings.h>
|
|
21
|
+
#endif /* HAVE_STRINGS_H */
|
|
22
|
+
|
|
23
|
+
#include "bits.h"
|
|
24
|
+
#include "arraylist.h"
|
|
25
|
+
|
|
26
|
+
struct array_list*
|
|
27
|
+
array_list_new(array_list_free_fn *free_fn)
|
|
28
|
+
{
|
|
29
|
+
struct array_list *this;
|
|
30
|
+
|
|
31
|
+
if(!(this = calloc(1, sizeof(struct array_list)))) return NULL;
|
|
32
|
+
this->size = ARRAY_LIST_DEFAULT_SIZE;
|
|
33
|
+
this->length = 0;
|
|
34
|
+
this->free_fn = free_fn;
|
|
35
|
+
if(!(this->array = calloc(sizeof(void*), this->size))) {
|
|
36
|
+
free(this);
|
|
37
|
+
return NULL;
|
|
38
|
+
}
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
extern void
|
|
43
|
+
array_list_free(struct array_list *this)
|
|
44
|
+
{
|
|
45
|
+
int i;
|
|
46
|
+
for(i = 0; i < this->length; i++)
|
|
47
|
+
if(this->array[i]) this->free_fn(this->array[i]);
|
|
48
|
+
free(this->array);
|
|
49
|
+
free(this);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
void*
|
|
53
|
+
array_list_get_idx(struct array_list *this, int i)
|
|
54
|
+
{
|
|
55
|
+
if(i >= this->length) return NULL;
|
|
56
|
+
return this->array[i];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static int array_list_expand_internal(struct array_list *this, int max)
|
|
60
|
+
{
|
|
61
|
+
void *t;
|
|
62
|
+
int new_size;
|
|
63
|
+
|
|
64
|
+
if(max < this->size) return 0;
|
|
65
|
+
new_size = max(this->size << 1, max);
|
|
66
|
+
if(!(t = realloc(this->array, new_size*sizeof(void*)))) return -1;
|
|
67
|
+
this->array = t;
|
|
68
|
+
(void)memset(this->array + this->size, 0, (new_size-this->size)*sizeof(void*));
|
|
69
|
+
this->size = new_size;
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
int
|
|
74
|
+
array_list_put_idx(struct array_list *this, int idx, void *data)
|
|
75
|
+
{
|
|
76
|
+
if(array_list_expand_internal(this, idx)) return -1;
|
|
77
|
+
if(this->array[idx]) this->free_fn(this->array[idx]);
|
|
78
|
+
this->array[idx] = data;
|
|
79
|
+
if(this->length <= idx) this->length = idx + 1;
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
int
|
|
84
|
+
array_list_add(struct array_list *this, void *data)
|
|
85
|
+
{
|
|
86
|
+
return array_list_put_idx(this, this->length, data);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
int
|
|
90
|
+
array_list_length(struct array_list *this)
|
|
91
|
+
{
|
|
92
|
+
return this->length;
|
|
93
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* $Id: arraylist.h,v 1.4 2006/01/26 02:16:28 mclark Exp $
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
|
5
|
+
* Michael Clark <michael@metaparadigm.com>
|
|
6
|
+
*
|
|
7
|
+
* This library is free software; you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the MIT license. See COPYING for details.
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#ifndef _arraylist_h_
|
|
13
|
+
#define _arraylist_h_
|
|
14
|
+
|
|
15
|
+
#define ARRAY_LIST_DEFAULT_SIZE 32
|
|
16
|
+
|
|
17
|
+
typedef void (array_list_free_fn) (void *data);
|
|
18
|
+
|
|
19
|
+
struct array_list
|
|
20
|
+
{
|
|
21
|
+
void **array;
|
|
22
|
+
int length;
|
|
23
|
+
int size;
|
|
24
|
+
array_list_free_fn *free_fn;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
extern struct array_list*
|
|
28
|
+
array_list_new(array_list_free_fn *free_fn);
|
|
29
|
+
|
|
30
|
+
extern void
|
|
31
|
+
array_list_free(struct array_list *al);
|
|
32
|
+
|
|
33
|
+
extern void*
|
|
34
|
+
array_list_get_idx(struct array_list *al, int i);
|
|
35
|
+
|
|
36
|
+
extern int
|
|
37
|
+
array_list_put_idx(struct array_list *al, int i, void *data);
|
|
38
|
+
|
|
39
|
+
extern int
|
|
40
|
+
array_list_add(struct array_list *al, void *data);
|
|
41
|
+
|
|
42
|
+
extern int
|
|
43
|
+
array_list_length(struct array_list *al);
|
|
44
|
+
|
|
45
|
+
#endif
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* $Id: bits.h,v 1.10 2006/01/30 23:07:57 mclark Exp $
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
|
5
|
+
* Michael Clark <michael@metaparadigm.com>
|
|
6
|
+
*
|
|
7
|
+
* This library is free software; you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the MIT license. See COPYING for details.
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#ifndef _bits_h_
|
|
13
|
+
#define _bits_h_
|
|
14
|
+
|
|
15
|
+
#ifndef min
|
|
16
|
+
#define min(a,b) ((a) < (b) ? (a) : (b))
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#ifndef max
|
|
20
|
+
#define max(a,b) ((a) > (b) ? (a) : (b))
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)
|
|
24
|
+
#define error_ptr(error) ((void*)error)
|
|
25
|
+
#define is_error(ptr) ((unsigned long)ptr > (unsigned long)-4000L)
|
|
26
|
+
|
|
27
|
+
#endif
|