yajl-ruby 0.7.4 → 0.7.5
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.
Potentially problematic release.
This version of yajl-ruby might be problematic. Click here for more details.
- data/CHANGELOG.md +7 -0
- data/VERSION.yml +2 -2
- data/benchmark/encode.rb +5 -1
- data/benchmark/parse.rb +5 -1
- data/benchmark/parse_stream.rb +5 -1
- data/ext/api/yajl_common.h +10 -10
- data/ext/api/yajl_gen.h +26 -26
- data/ext/api/yajl_parse.h +35 -21
- data/ext/extconf.rb +1 -1
- data/ext/yajl.c +19 -12
- data/ext/yajl_alloc.c +7 -7
- data/ext/yajl_alloc.h +7 -7
- data/ext/yajl_buf.c +8 -8
- data/ext/yajl_buf.h +8 -8
- data/ext/yajl_bytestack.h +11 -11
- data/ext/yajl_encode.c +14 -14
- data/ext/yajl_encode.h +8 -8
- data/ext/yajl_ext.c +7 -3
- data/ext/yajl_ext.h +1 -1
- data/ext/yajl_gen.c +16 -18
- data/ext/yajl_lex.c +74 -74
- data/ext/yajl_lex.h +15 -15
- data/ext/yajl_parser.c +42 -39
- data/ext/yajl_parser.h +14 -11
- data/lib/yajl.rb +1 -1
- data/lib/yajl/bzip2/stream_reader.rb +13 -0
- data/lib/yajl/deflate/stream_reader.rb +10 -3
- data/lib/yajl/gzip/stream_reader.rb +13 -0
- data/spec/encoding/encoding_spec.rb +13 -2
- data/spec/spec_helper.rb +1 -0
- data/yajl-ruby.gemspec +2 -2
- metadata +3 -3
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.7.5 (March 23rd, 2010)
|
4
|
+
* check for existence of and use as_json method on custom objects
|
5
|
+
* bugfix with read buffer when parsing from an IO (thanks to Pavel Valodzka <pavel@valodzka.name>)
|
6
|
+
* merged in latest yajl
|
7
|
+
* enable -Wextra during compilation
|
8
|
+
* brought back ability to pass a buffer to bzip/gzip/deflate #read helper methods
|
9
|
+
|
3
10
|
## 0.7.4 (March 3rd, 2010)
|
4
11
|
* bugfix for the JSON gem compatibility API's Object#to_json method improperly encoding strings
|
5
12
|
|
data/VERSION.yml
CHANGED
data/benchmark/encode.rb
CHANGED
@@ -9,8 +9,12 @@ rescue LoadError
|
|
9
9
|
end
|
10
10
|
# Can't use ActiveSuport::JSON.encode with the JSON gem loaded
|
11
11
|
# begin
|
12
|
-
# require 'active_support'
|
12
|
+
# require 'active_support/json'
|
13
13
|
# rescue LoadError
|
14
|
+
# begin
|
15
|
+
# require 'active_support'
|
16
|
+
# rescue LoadError
|
17
|
+
# end
|
14
18
|
# end
|
15
19
|
|
16
20
|
filename = ARGV[0] || 'benchmark/subjects/ohai.json'
|
data/benchmark/parse.rb
CHANGED
@@ -7,8 +7,12 @@ begin
|
|
7
7
|
rescue LoadError
|
8
8
|
end
|
9
9
|
begin
|
10
|
-
require 'active_support'
|
10
|
+
require 'active_support/json'
|
11
11
|
rescue LoadError
|
12
|
+
begin
|
13
|
+
require 'active_support'
|
14
|
+
rescue LoadError
|
15
|
+
end
|
12
16
|
end
|
13
17
|
|
14
18
|
filename = ARGV[0] || 'benchmark/subjects/twitter_search.json'
|
data/benchmark/parse_stream.rb
CHANGED
data/ext/api/yajl_common.h
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright
|
3
|
-
*
|
2
|
+
* Copyright 2010, Lloyd Hilaiel.
|
3
|
+
*
|
4
4
|
* Redistribution and use in source and binary forms, with or without
|
5
5
|
* modification, are permitted provided that the following conditions are
|
6
6
|
* met:
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
9
|
* notice, this list of conditions and the following disclaimer.
|
10
|
-
*
|
10
|
+
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
13
13
|
* the documentation and/or other materials provided with the
|
14
14
|
* distribution.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* 3. Neither the name of Lloyd Hilaiel nor the names of its
|
17
17
|
* contributors may be used to endorse or promote products derived
|
18
18
|
* from this software without specific prior written permission.
|
19
|
-
*
|
19
|
+
*
|
20
20
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
21
21
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
22
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
@@ -28,14 +28,14 @@
|
|
28
28
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
29
29
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
30
|
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
*/
|
31
|
+
*/
|
32
32
|
|
33
33
|
#ifndef __YAJL_COMMON_H__
|
34
34
|
#define __YAJL_COMMON_H__
|
35
35
|
|
36
36
|
#ifdef __cplusplus
|
37
37
|
extern "C" {
|
38
|
-
#endif
|
38
|
+
#endif
|
39
39
|
|
40
40
|
#define YAJL_MAX_DEPTH 128
|
41
41
|
|
@@ -50,7 +50,7 @@ extern "C" {
|
|
50
50
|
# endif
|
51
51
|
#else
|
52
52
|
# define YAJL_API
|
53
|
-
#endif
|
53
|
+
#endif
|
54
54
|
|
55
55
|
/** pointer to a malloc function, supporting client overriding memory
|
56
56
|
* allocation routines */
|
@@ -80,6 +80,6 @@ typedef struct
|
|
80
80
|
|
81
81
|
#ifdef __cplusplus
|
82
82
|
}
|
83
|
-
#endif
|
83
|
+
#endif
|
84
84
|
|
85
85
|
#endif
|
data/ext/api/yajl_gen.h
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright
|
3
|
-
*
|
2
|
+
* Copyright 2010, Lloyd Hilaiel.
|
3
|
+
*
|
4
4
|
* Redistribution and use in source and binary forms, with or without
|
5
5
|
* modification, are permitted provided that the following conditions are
|
6
6
|
* met:
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
9
|
* notice, this list of conditions and the following disclaimer.
|
10
|
-
*
|
10
|
+
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
13
13
|
* the documentation and/or other materials provided with the
|
14
14
|
* distribution.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* 3. Neither the name of Lloyd Hilaiel nor the names of its
|
17
17
|
* contributors may be used to endorse or promote products derived
|
18
18
|
* from this software without specific prior written permission.
|
19
|
-
*
|
19
|
+
*
|
20
20
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
21
21
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
22
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
@@ -28,7 +28,7 @@
|
|
28
28
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
29
29
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
30
|
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
*/
|
31
|
+
*/
|
32
32
|
|
33
33
|
/**
|
34
34
|
* \file yajl_gen.h
|
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
#ifdef __cplusplus
|
44
44
|
extern "C" {
|
45
|
-
#endif
|
45
|
+
#endif
|
46
46
|
/** generator status codes */
|
47
47
|
typedef enum {
|
48
48
|
/** no error */
|
@@ -57,7 +57,7 @@ extern "C" {
|
|
57
57
|
* state */
|
58
58
|
yajl_gen_in_error_state,
|
59
59
|
/** A complete JSON document has been generated */
|
60
|
-
yajl_gen_generation_complete,
|
60
|
+
yajl_gen_generation_complete,
|
61
61
|
/** yajl_gen_double was passed an invalid floating point value
|
62
62
|
* (infinity or NaN). */
|
63
63
|
yajl_gen_invalid_number,
|
@@ -94,7 +94,7 @@ extern "C" {
|
|
94
94
|
*
|
95
95
|
* \returns an allocated handle on success, NULL on failure (bad params)
|
96
96
|
*/
|
97
|
-
yajl_gen
|
97
|
+
YAJL_API yajl_gen yajl_gen_alloc(const yajl_gen_config * config,
|
98
98
|
const yajl_alloc_funcs * allocFuncs);
|
99
99
|
|
100
100
|
/** allocate a generator handle that will print to the specified
|
@@ -114,46 +114,46 @@ extern "C" {
|
|
114
114
|
*
|
115
115
|
* \returns an allocated handle on success, NULL on failure (bad params)
|
116
116
|
*/
|
117
|
-
yajl_gen
|
117
|
+
YAJL_API yajl_gen yajl_gen_alloc2(const yajl_print_t callback,
|
118
118
|
const yajl_gen_config * config,
|
119
119
|
const yajl_alloc_funcs * allocFuncs,
|
120
120
|
void * ctx);
|
121
121
|
|
122
|
-
/** free a generator handle */
|
123
|
-
void
|
122
|
+
/** free a generator handle */
|
123
|
+
YAJL_API void yajl_gen_free(yajl_gen handle);
|
124
124
|
|
125
|
-
yajl_gen_status
|
125
|
+
YAJL_API yajl_gen_status yajl_gen_integer(yajl_gen hand, long int number);
|
126
126
|
/** generate a floating point number. number may not be infinity or
|
127
127
|
* NaN, as these have no representation in JSON. In these cases the
|
128
128
|
* generator will return 'yajl_gen_invalid_number' */
|
129
|
-
yajl_gen_status
|
130
|
-
yajl_gen_status
|
129
|
+
YAJL_API yajl_gen_status yajl_gen_double(yajl_gen hand, double number);
|
130
|
+
YAJL_API yajl_gen_status yajl_gen_number(yajl_gen hand,
|
131
131
|
const char * num,
|
132
132
|
unsigned int len);
|
133
|
-
yajl_gen_status
|
133
|
+
YAJL_API yajl_gen_status yajl_gen_string(yajl_gen hand,
|
134
134
|
const unsigned char * str,
|
135
135
|
unsigned int len);
|
136
|
-
yajl_gen_status
|
137
|
-
yajl_gen_status
|
138
|
-
yajl_gen_status
|
139
|
-
yajl_gen_status
|
140
|
-
yajl_gen_status
|
141
|
-
yajl_gen_status
|
136
|
+
YAJL_API yajl_gen_status yajl_gen_null(yajl_gen hand);
|
137
|
+
YAJL_API yajl_gen_status yajl_gen_bool(yajl_gen hand, int boolean);
|
138
|
+
YAJL_API yajl_gen_status yajl_gen_map_open(yajl_gen hand);
|
139
|
+
YAJL_API yajl_gen_status yajl_gen_map_close(yajl_gen hand);
|
140
|
+
YAJL_API yajl_gen_status yajl_gen_array_open(yajl_gen hand);
|
141
|
+
YAJL_API yajl_gen_status yajl_gen_array_close(yajl_gen hand);
|
142
142
|
|
143
143
|
/** access the null terminated generator buffer. If incrementally
|
144
144
|
* outputing JSON, one should call yajl_gen_clear to clear the
|
145
145
|
* buffer. This allows stream generation. */
|
146
|
-
yajl_gen_status
|
146
|
+
YAJL_API yajl_gen_status yajl_gen_get_buf(yajl_gen hand,
|
147
147
|
const unsigned char ** buf,
|
148
148
|
unsigned int * len);
|
149
149
|
|
150
150
|
/** clear yajl's output buffer, but maintain all internal generation
|
151
151
|
* state. This function will not "reset" the generator state, and is
|
152
152
|
* intended to enable incremental JSON outputing. */
|
153
|
-
void
|
153
|
+
YAJL_API void yajl_gen_clear(yajl_gen hand);
|
154
154
|
|
155
155
|
#ifdef __cplusplus
|
156
156
|
}
|
157
|
-
#endif
|
157
|
+
#endif
|
158
158
|
|
159
159
|
#endif
|
data/ext/api/yajl_parse.h
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright
|
3
|
-
*
|
2
|
+
* Copyright 2010, Lloyd Hilaiel.
|
3
|
+
*
|
4
4
|
* Redistribution and use in source and binary forms, with or without
|
5
5
|
* modification, are permitted provided that the following conditions are
|
6
6
|
* met:
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
9
|
* notice, this list of conditions and the following disclaimer.
|
10
|
-
*
|
10
|
+
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
13
13
|
* the documentation and/or other materials provided with the
|
14
14
|
* distribution.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* 3. Neither the name of Lloyd Hilaiel nor the names of its
|
17
17
|
* contributors may be used to endorse or promote products derived
|
18
18
|
* from this software without specific prior written permission.
|
19
|
-
*
|
19
|
+
*
|
20
20
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
21
21
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
22
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
@@ -28,7 +28,7 @@
|
|
28
28
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
29
29
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
30
|
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
*/
|
31
|
+
*/
|
32
32
|
|
33
33
|
/**
|
34
34
|
* \file yajl_parse.h
|
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
#ifdef __cplusplus
|
44
44
|
extern "C" {
|
45
|
-
#endif
|
45
|
+
#endif
|
46
46
|
/** error codes returned from this interface */
|
47
47
|
typedef enum {
|
48
48
|
/** no error was encountered */
|
@@ -59,7 +59,7 @@ extern "C" {
|
|
59
59
|
} yajl_status;
|
60
60
|
|
61
61
|
/** attain a human readable, english, string for an error */
|
62
|
-
const char *
|
62
|
+
YAJL_API const char * yajl_status_to_string(yajl_status code);
|
63
63
|
|
64
64
|
/** an opaque handle to a parser */
|
65
65
|
typedef struct yajl_handle_t * yajl_handle;
|
@@ -103,12 +103,12 @@ extern "C" {
|
|
103
103
|
int (* yajl_start_map)(void * ctx);
|
104
104
|
int (* yajl_map_key)(void * ctx, const unsigned char * key,
|
105
105
|
unsigned int stringLen);
|
106
|
-
int (* yajl_end_map)(void * ctx);
|
106
|
+
int (* yajl_end_map)(void * ctx);
|
107
107
|
|
108
108
|
int (* yajl_start_array)(void * ctx);
|
109
|
-
int (* yajl_end_array)(void * ctx);
|
109
|
+
int (* yajl_end_array)(void * ctx);
|
110
110
|
} yajl_callbacks;
|
111
|
-
|
111
|
+
|
112
112
|
/** configuration structure for the generator */
|
113
113
|
typedef struct {
|
114
114
|
/** if nonzero, javascript style comments will be allowed in
|
@@ -127,7 +127,7 @@ extern "C" {
|
|
127
127
|
* \param config configuration parameters for the parse.
|
128
128
|
* \param ctx a context pointer that will be passed to callbacks.
|
129
129
|
*/
|
130
|
-
yajl_handle
|
130
|
+
YAJL_API yajl_handle yajl_alloc(const yajl_callbacks * callbacks,
|
131
131
|
const yajl_parser_config * config,
|
132
132
|
const yajl_alloc_funcs * allocFuncs,
|
133
133
|
void * ctx);
|
@@ -143,7 +143,7 @@ extern "C" {
|
|
143
143
|
* \param jsonText - a pointer to the UTF8 json text to be parsed
|
144
144
|
* \param jsonTextLength - the length, in bytes, of input text
|
145
145
|
*/
|
146
|
-
yajl_status
|
146
|
+
YAJL_API yajl_status yajl_parse(yajl_handle hand,
|
147
147
|
const unsigned char * jsonText,
|
148
148
|
unsigned int jsonTextLength);
|
149
149
|
|
@@ -156,8 +156,8 @@ extern "C" {
|
|
156
156
|
*
|
157
157
|
* \param hand - a handle to the json parser allocated with yajl_alloc
|
158
158
|
*/
|
159
|
-
yajl_status yajl_parse_complete(yajl_handle hand);
|
160
|
-
|
159
|
+
YAJL_API yajl_status yajl_parse_complete(yajl_handle hand);
|
160
|
+
|
161
161
|
/** get an error string describing the state of the
|
162
162
|
* parse.
|
163
163
|
*
|
@@ -165,18 +165,32 @@ extern "C" {
|
|
165
165
|
* text where the error occured, along with an arrow pointing to
|
166
166
|
* the specific char.
|
167
167
|
*
|
168
|
-
* A dynamically allocated string will be returned which should
|
169
|
-
* be freed with yajl_free_error
|
168
|
+
* \returns A dynamically allocated string will be returned which should
|
169
|
+
* be freed with yajl_free_error
|
170
170
|
*/
|
171
|
-
unsigned char *
|
171
|
+
YAJL_API unsigned char * yajl_get_error(yajl_handle hand, int verbose,
|
172
172
|
const unsigned char * jsonText,
|
173
173
|
unsigned int jsonTextLength);
|
174
174
|
|
175
|
+
/**
|
176
|
+
* get the amount of data consumed from the last chunk passed to YAJL.
|
177
|
+
*
|
178
|
+
* In the case of a successful parse this can help you understand if
|
179
|
+
* the entire buffer was consumed (which will allow you to handle
|
180
|
+
* "junk at end of input".
|
181
|
+
*
|
182
|
+
* In the event an error is encountered during parsing, this function
|
183
|
+
* affords the client a way to get the offset into the most recent
|
184
|
+
* chunk where the error occured. 0 will be returned if no error
|
185
|
+
* was encountered.
|
186
|
+
*/
|
187
|
+
YAJL_API unsigned int yajl_get_bytes_consumed(yajl_handle hand);
|
188
|
+
|
175
189
|
/** free an error returned from yajl_get_error */
|
176
|
-
void
|
190
|
+
YAJL_API void yajl_free_error(yajl_handle hand, unsigned char * str);
|
177
191
|
|
178
192
|
#ifdef __cplusplus
|
179
193
|
}
|
180
|
-
#endif
|
194
|
+
#endif
|
181
195
|
|
182
196
|
#endif
|
data/ext/extconf.rb
CHANGED
data/ext/yajl.c
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright
|
3
|
-
*
|
2
|
+
* Copyright 2010, Lloyd Hilaiel.
|
3
|
+
*
|
4
4
|
* Redistribution and use in source and binary forms, with or without
|
5
5
|
* modification, are permitted provided that the following conditions are
|
6
6
|
* met:
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
9
|
* notice, this list of conditions and the following disclaimer.
|
10
|
-
*
|
10
|
+
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
13
13
|
* the documentation and/or other materials provided with the
|
14
14
|
* distribution.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* 3. Neither the name of Lloyd Hilaiel nor the names of its
|
17
17
|
* contributors may be used to endorse or promote products derived
|
18
18
|
* from this software without specific prior written permission.
|
19
|
-
*
|
19
|
+
*
|
20
20
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
21
21
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
22
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
@@ -28,7 +28,7 @@
|
|
28
28
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
29
29
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
30
|
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
*/
|
31
|
+
*/
|
32
32
|
|
33
33
|
#include "api/yajl_parse.h"
|
34
34
|
#include "yajl_lex.h"
|
@@ -70,7 +70,7 @@ yajl_alloc(const yajl_callbacks * callbacks,
|
|
70
70
|
unsigned int validateUTF8 = 0;
|
71
71
|
yajl_handle hand = NULL;
|
72
72
|
yajl_alloc_funcs afsBuffer;
|
73
|
-
|
73
|
+
|
74
74
|
/* first order of business is to set up memory allocation routines */
|
75
75
|
if (afs != NULL) {
|
76
76
|
if (afs->malloc == NULL || afs->realloc == NULL || afs->free == NULL)
|
@@ -95,11 +95,11 @@ yajl_alloc(const yajl_callbacks * callbacks,
|
|
95
95
|
hand->callbacks = callbacks;
|
96
96
|
hand->ctx = ctx;
|
97
97
|
hand->lexer = yajl_lex_alloc(&(hand->alloc), allowComments, validateUTF8);
|
98
|
-
hand->
|
98
|
+
hand->bytesConsumed = 0;
|
99
99
|
hand->decodeBuf = yajl_buf_alloc(&(hand->alloc));
|
100
100
|
yajl_bs_init(hand->stateStack, &(hand->alloc));
|
101
101
|
|
102
|
-
yajl_bs_push(hand->stateStack, yajl_state_start);
|
102
|
+
yajl_bs_push(hand->stateStack, yajl_state_start);
|
103
103
|
|
104
104
|
return hand;
|
105
105
|
}
|
@@ -122,9 +122,8 @@ yajl_status
|
|
122
122
|
yajl_parse(yajl_handle hand, const unsigned char * jsonText,
|
123
123
|
unsigned int jsonTextLen)
|
124
124
|
{
|
125
|
-
unsigned int offset = 0;
|
126
125
|
yajl_status status;
|
127
|
-
status = yajl_do_parse(hand,
|
126
|
+
status = yajl_do_parse(hand, jsonText, jsonTextLen);
|
128
127
|
return status;
|
129
128
|
}
|
130
129
|
|
@@ -147,6 +146,14 @@ yajl_get_error(yajl_handle hand, int verbose,
|
|
147
146
|
return yajl_render_error_string(hand, jsonText, jsonTextLen, verbose);
|
148
147
|
}
|
149
148
|
|
149
|
+
unsigned int
|
150
|
+
yajl_get_bytes_consumed(yajl_handle hand)
|
151
|
+
{
|
152
|
+
if (!hand) return 0;
|
153
|
+
else return hand->bytesConsumed;
|
154
|
+
}
|
155
|
+
|
156
|
+
|
150
157
|
void
|
151
158
|
yajl_free_error(yajl_handle hand, unsigned char * str)
|
152
159
|
{
|