Changeset 822

Show
Ignore:
Timestamp:
08/15/08 20:20:12 (3 months ago)
Author:
liamstask
Message:

- enhance json encoder to simply return null if the buffer passed in is null

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • firmware/trunk/libraries/json/json.c

    r764 r822  
    143143char* JsonEncode_ObjectOpen(JsonEncode_State* state, char *buf, int *remaining) 
    144144{ 
     145  if( !buf ) 
     146    return 0; 
    145147  int len = 1; 
    146148  switch(state->steps[state->depth]) 
     
    203205char* JsonEncode_ObjectClose(JsonEncode_State* state, char *buf, int *remaining) 
    204206{ 
    205   if(*remaining < 1) 
     207  if(*remaining < 1 || !buf ) 
    206208    return NULL; 
    207209  memcpy(buf, "}", 1); 
     
    222224char* JsonEncode_ArrayOpen(JsonEncode_State* state, char *buf, int *remaining) 
    223225{ 
     226  if( !buf ) 
     227    return 0; 
    224228  int len = 1; 
    225229  switch(state->steps[state->depth]) 
     
    269273char* JsonEncode_ArrayClose(JsonEncode_State* state, char *buf, int *remaining) 
    270274{ 
    271   if(*remaining < 1) 
     275  if(*remaining < 1 || !buf ) 
    272276    return NULL; 
    273277  memcpy(buf, "]", 1); 
     
    291295char* JsonEncode_String(JsonEncode_State* state, char *buf, const char *string, int *remaining) 
    292296{ 
     297  if( !buf ) 
     298    return 0; 
    293299  int string_len = strlen(string) + 2 /* quotes */; 
    294300 
     
    345351char* JsonEncode_Int(JsonEncode_State* state, char *buf, int value, int *remaining) 
    346352{ 
     353  if( !buf ) 
     354    return 0; 
    347355  int int_as_str_len = 11; // largest 32-bit int is 10 digits long, and also leave room for a +/- 
    348356  int int_len = 0; 
     
    400408char* JsonEncode_Bool(JsonEncode_State* state, char *buf, bool value, int *remaining) 
    401409{ 
     410  if( !buf ) 
     411    return 0; 
    402412  const char* boolval = (value) ? "true" : "false"; 
    403413  int bool_len = strlen(boolval);