develop.uap-core.de/git
/
uwplayer.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
implement playlist remove
[uwplayer.git]
/
application
/
json.c
diff --git
a/application/json.c
b/application/json.c
index
719a570
..
bd27f2f
100644
(file)
--- a/
application/json.c
+++ b/
application/json.c
@@
-51,6
+51,13
@@
JSONParser* json_parser_new(void) {
return parser;
}
return parser;
}
+void json_parser_free(JSONParser *p) {
+ if(p->states) free(p->states);
+ if(p->readvalue_stack) free(p->readvalue_stack);
+
+ free(p);
+}
+
void json_parser_fill(JSONParser *p, const char *buf, size_t size) {
p->buffer = buf;
p->size = size;
void json_parser_fill(JSONParser *p, const char *buf, size_t size) {
p->buffer = buf;
p->size = size;
@@
-614,9
+621,10
@@
int json_reader_isnull(JSONParser *p) {
JSONLiteralType json_reader_literal(JSONParser *p) {
const char *l = p->reader_token.content;
JSONLiteralType json_reader_literal(JSONParser *p) {
const char *l = p->reader_token.content;
- if(!strcmp(l, "true")) {
+ size_t token_len = p->reader_token.length;
+ if(token_len == 4 && !memcmp(l, "true", 4)) {
return JSON_TRUE;
return JSON_TRUE;
- } else if(
!strcmp(l, "false"
)) {
+ } else if(
token_len == 5 && !memcmp(l, "false", 5
)) {
return JSON_FALSE;
}
return JSON_NULL;
return JSON_FALSE;
}
return JSON_NULL;
@@
-744,10
+752,11
@@
static int add_to_parent(JSONParser *p, JSONValue *parent, JSONValue *v) {
static int readvaluestack_add(JSONParser *p, JSONValue *v) {
if(p->readvalue_nelm == p->readvalue_alloc) {
p->readvalue_alloc *= 2;
static int readvaluestack_add(JSONParser *p, JSONValue *v) {
if(p->readvalue_nelm == p->readvalue_alloc) {
p->readvalue_alloc *= 2;
-
p->readvalue
_stack = realloc(p->readvalue_stack, sizeof(JSONValue*) * p->readvalue_alloc);
- if(!
p->readvalue
_stack) {
+
JSONValue **new
_stack = realloc(p->readvalue_stack, sizeof(JSONValue*) * p->readvalue_alloc);
+ if(!
new
_stack) {
return -1;
}
return -1;
}
+ p->readvalue_stack = new_stack;
}
p->readvalue_stack[p->readvalue_nelm++] = v;
return 0;
}
p->readvalue_stack[p->readvalue_nelm++] = v;
return 0;