Skip to content
Permalink
Browse files Browse the repository at this point in the history
don't mix up int and size_t (first pass to fix that)
  • Loading branch information
Jérôme Lebel committed Jan 7, 2013
1 parent de11258 commit 1a1f5e2
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 83 deletions.
2 changes: 1 addition & 1 deletion src/bcon.c
Expand Up @@ -172,7 +172,7 @@ static bcon_error_t bson_append_bcon_with_state(bson *b, const bcon *bc, bcon_st
unsigned char doc_stack[DOC_STACK_SIZE];
size_t doc_stack_pointer = 0;
size_t array_index = 0;
unsigned int array_index_stack[ARRAY_INDEX_STACK_SIZE];
size_t array_index_stack[ARRAY_INDEX_STACK_SIZE];
size_t array_index_stack_pointer = 0;
char array_index_buffer[ARRAY_INDEX_BUFFER_SIZE]; /* max BSON size */
int end_of_data;
Expand Down
59 changes: 32 additions & 27 deletions src/bson.c
Expand Up @@ -106,7 +106,7 @@ MONGO_EXPORT int bson_size( const bson *b ) {
return i;
}

MONGO_EXPORT int bson_buffer_size( const bson *b ) {
MONGO_EXPORT size_t bson_buffer_size( const bson *b ) {
return (b->cur - b->data + 1);
}

Expand Down Expand Up @@ -306,7 +306,7 @@ MONGO_EXPORT bson_bool_t bson_iterator_more( const bson_iterator *i ) {
}

MONGO_EXPORT bson_type bson_iterator_next( bson_iterator *i ) {
int ds;
size_t ds;

if ( i->first ) {
i->first = 0;
Expand Down Expand Up @@ -420,7 +420,7 @@ MONGO_EXPORT int bson_iterator_int( const bson_iterator *i ) {
case BSON_INT:
return bson_iterator_int_raw( i );
case BSON_LONG:
return bson_iterator_long_raw( i );
return ( int )bson_iterator_long_raw( i );
case BSON_DOUBLE:
return bson_iterator_double_raw( i );
default:
Expand Down Expand Up @@ -604,7 +604,7 @@ static void bson_append_byte( bson *b, char c ) {
b->cur++;
}

static void bson_append( bson *b, const void *data, int len ) {
static void bson_append( bson *b, const void *data, size_t len ) {
memcpy( b->cur , data , len );
b->cur += len;
}
Expand All @@ -614,12 +614,17 @@ static void bson_append32( bson *b, const void *data ) {
b->cur += 4;
}

static void bson_append32_as_int( bson *b, int data ) {
bson_little_endian32( b->cur, &data );
b->cur += 4;
}

static void bson_append64( bson *b, const void *data ) {
bson_little_endian64( b->cur, data );
b->cur += 8;
}

int bson_ensure_space( bson *b, const int bytesNeeded ) {
int bson_ensure_space( bson *b, const size_t bytesNeeded ) {
int pos = b->cur - b->data;
char *orig = b->data;
int new_size;
Expand Down Expand Up @@ -657,7 +662,7 @@ MONGO_EXPORT int bson_finish( bson *b ) {
if ( ! b->finished ) {
if ( bson_ensure_space( b, 1 ) == BSON_ERROR ) return BSON_ERROR;
bson_append_byte( b, 0 );
i = b->cur - b->data;
i = ( int )( b->cur - b->data );
bson_little_endian32( b->data, &i );
b->finished = 1;
}
Expand All @@ -675,7 +680,7 @@ MONGO_EXPORT void bson_destroy( bson *b ) {
}
}

static int bson_append_estart( bson *b, int type, const char *name, const int dataSize ) {
static int bson_append_estart( bson *b, int type, const char *name, const size_t dataSize ) {
const int len = strlen( name ) + 1;

if ( b->finished ) {
Expand Down Expand Up @@ -742,15 +747,15 @@ MONGO_EXPORT int bson_append_undefined( bson *b, const char *name ) {
}

static int bson_append_string_base( bson *b, const char *name,
const char *value, int len, bson_type type ) {
const char *value, size_t len, bson_type type ) {

int sl = len + 1;
size_t sl = len + 1;
if ( bson_check_string( b, ( const char * )value, sl - 1 ) == BSON_ERROR )
return BSON_ERROR;
if ( bson_append_estart( b, type, name, 4 + sl ) == BSON_ERROR ) {
return BSON_ERROR;
}
bson_append32( b , &sl );
bson_append32_as_int( b , ( int )sl );
bson_append( b , value , sl - 1 );
bson_append( b , "\0" , 1 );
return BSON_OK;
Expand All @@ -768,28 +773,28 @@ MONGO_EXPORT int bson_append_code( bson *b, const char *name, const char *value
return bson_append_string_base( b, name, value, strlen ( value ), BSON_CODE );
}

MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *value, int len ) {
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *value, size_t len ) {
return bson_append_string_base( b, name, value, len, BSON_STRING );
}

MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *value, int len ) {
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *value, size_t len ) {
return bson_append_string_base( b, name, value, len, BSON_SYMBOL );
}

MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *value, int len ) {
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *value, size_t len ) {
return bson_append_string_base( b, name, value, len, BSON_CODE );
}

MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name,
const char *code, int len, const bson *scope ) {
const char *code, size_t len, const bson *scope ) {

int sl, size;
size_t sl, size;
if ( !scope ) return BSON_ERROR;
sl = len + 1;
size = 4 + 4 + sl + bson_size( scope );
if ( bson_append_estart( b, BSON_CODEWSCOPE, name, size ) == BSON_ERROR )
return BSON_ERROR;
bson_append32( b, &size );
bson_append32_as_int( b, ( int )size );
bson_append32( b, &sl );
bson_append( b, code, sl );
bson_append( b, scope->data, bson_size( scope ) );
Expand All @@ -800,20 +805,20 @@ MONGO_EXPORT int bson_append_code_w_scope( bson *b, const char *name, const char
return bson_append_code_w_scope_n( b, name, code, strlen ( code ), scope );
}

MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, int len ) {
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, size_t len ) {
if ( type == BSON_BIN_BINARY_OLD ) {
int subtwolen = len + 4;
if ( bson_append_estart( b, BSON_BINDATA, name, 4+1+4+len ) == BSON_ERROR )
return BSON_ERROR;
bson_append32( b, &subtwolen );
bson_append32_as_int( b, ( int )subtwolen );
bson_append_byte( b, type );
bson_append32( b, &len );
bson_append32_as_int( b, ( int )len );
bson_append( b, str, len );
}
else {
if ( bson_append_estart( b, BSON_BINDATA, name, 4+1+len ) == BSON_ERROR )
return BSON_ERROR;
bson_append32( b, &len );
bson_append32_as_int( b, ( int )len );
bson_append_byte( b, type );
bson_append( b, str, len );
}
Expand All @@ -834,8 +839,8 @@ MONGO_EXPORT int bson_append_new_oid( bson *b, const char *name ) {
}

MONGO_EXPORT int bson_append_regex( bson *b, const char *name, const char *pattern, const char *opts ) {
const int plen = strlen( pattern )+1;
const int olen = strlen( opts )+1;
const size_t plen = strlen( pattern )+1;
const size_t olen = strlen( opts )+1;
if ( bson_append_estart( b, BSON_REGEX, name, plen + olen ) == BSON_ERROR )
return BSON_ERROR;
if ( bson_check_string( b, pattern, plen - 1 ) == BSON_ERROR )
Expand All @@ -855,7 +860,7 @@ MONGO_EXPORT int bson_append_bson( bson *b, const char *name, const bson *bson )

MONGO_EXPORT int bson_append_element( bson *b, const char *name_or_null, const bson_iterator *elem ) {
bson_iterator next = *elem;
int size;
size_t size;

bson_iterator_next( &next );
size = next.cur - elem->cur;
Expand All @@ -866,7 +871,7 @@ MONGO_EXPORT int bson_append_element( bson *b, const char *name_or_null, const b
bson_append( b, elem->cur, size );
}
else {
int data_size = size - 2 - strlen( bson_iterator_key( elem ) );
size_t data_size = size - 2 - strlen( bson_iterator_key( elem ) );
bson_append_estart( b, elem->cur[0], name_or_null, data_size );
bson_append( b, bson_iterator_value( elem ), data_size );
}
Expand Down Expand Up @@ -922,7 +927,7 @@ MONGO_EXPORT int bson_append_finish_object( bson *b ) {
bson_append_byte( b , 0 );

start = b->data + b->stack[ --b->stackPos ];
i = b->cur - start;
i = ( int )( b->cur - start );
bson_little_endian32( start, &i );

return BSON_OK;
Expand Down Expand Up @@ -950,14 +955,14 @@ MONGO_EXPORT void bson_free( void *ptr ) {
bson_free_func( ptr );
}

MONGO_EXPORT void *bson_malloc( int size ) {
MONGO_EXPORT void *bson_malloc( size_t size ) {
void *p;
p = bson_malloc_func( size );
bson_fatal_msg( !!p, "malloc() failed" );
return p;
}

void *bson_realloc( void *ptr, int size ) {
void *bson_realloc( void *ptr, size_t size ) {
void *p;
p = bson_realloc_func( ptr, size );
bson_fatal_msg( !!p, "realloc() failed" );
Expand Down
20 changes: 10 additions & 10 deletions src/bson.h
Expand Up @@ -135,7 +135,7 @@ typedef struct {
char *cur; /**< Pointer to the current position. */
int dataSize; /**< The number of bytes allocated to char *data. */
bson_bool_t finished; /**< When finished, the BSON object can no longer be modified. */
int stack[32]; /**< A stack used to keep track of nested BSON elements. */
size_t stack[32]; /**< A stack used to keep track of nested BSON elements. */
int stackPos; /**< Index of current stack position. */
int err; /**< Bitfield representing errors or warnings on this buffer */
char *errstr; /**< A string representation of the most recent error or warning. */
Expand Down Expand Up @@ -170,7 +170,7 @@ MONGO_EXPORT void bson_dispose(bson* b);
* @return the size.
*/
MONGO_EXPORT int bson_size( const bson *b );
MONGO_EXPORT int bson_buffer_size( const bson *b );
MONGO_EXPORT size_t bson_buffer_size( const bson *b );

/**
* Print a string representation of a BSON object.
Expand Down Expand Up @@ -602,7 +602,7 @@ void bson_init_size( bson *b, int size );
* @return BSON_OK or BSON_ERROR with the bson error object set.
* Exits if allocation fails.
*/
int bson_ensure_space( bson *b, const int bytesNeeded );
int bson_ensure_space( bson *b, const size_t bytesNeeded );

/**
* Finalize a bson object.
Expand Down Expand Up @@ -717,7 +717,7 @@ MONGO_EXPORT int bson_append_string( bson *b, const char *name, const char *str
*
* @return BSON_OK or BSON_ERROR.
*/
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *str, int len );
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *str, size_t len );

/**
* Append a symbol to a bson.
Expand All @@ -740,7 +740,7 @@ MONGO_EXPORT int bson_append_symbol( bson *b, const char *name, const char *str
*
* @return BSON_OK or BSON_ERROR.
*/
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *str, int len );
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *str, size_t len );

/**
* Append code to a bson.
Expand All @@ -764,7 +764,7 @@ MONGO_EXPORT int bson_append_code( bson *b, const char *name, const char *str );
*
* @return BSON_OK or BSON_ERROR.
*/
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *str, int len );
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *str, size_t len );

/**
* Append code to a bson with scope.
Expand All @@ -789,7 +789,7 @@ MONGO_EXPORT int bson_append_code_w_scope( bson *b, const char *name, const char
*
* @return BSON_OK or BSON_ERROR.
*/
MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name, const char *code, int size, const bson *scope );
MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name, const char *code, size_t size, const bson *scope );

/**
* Append binary data to a bson.
Expand All @@ -802,7 +802,7 @@ MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name, const ch
*
* @return BSON_OK or BSON_ERROR.
*/
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, int len );
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, size_t len );

/**
* Append a bson_bool_t to a bson.
Expand Down Expand Up @@ -977,7 +977,7 @@ MONGO_EXPORT void bson_free( void *ptr );
*
* @sa malloc(3)
*/
MONGO_EXPORT void *bson_malloc( int size );
MONGO_EXPORT void *bson_malloc( size_t size );

/**
* Changes the size of allocated memory and checks return value,
Expand All @@ -990,7 +990,7 @@ MONGO_EXPORT void *bson_malloc( int size );
*
* @sa realloc()
*/
void *bson_realloc( void *ptr, int size );
void *bson_realloc( void *ptr, size_t size );

/**
* Set a function for error handling.
Expand Down
10 changes: 5 additions & 5 deletions src/encoding.c
Expand Up @@ -102,7 +102,7 @@ static int isLegalUTF8( const unsigned char *source, int length ) {
}

/* If the name is part of a db ref ($ref, $db, or $id), then return true. */
static int bson_string_is_db_ref( const unsigned char *string, const int length ) {
static int bson_string_is_db_ref( const unsigned char *string, const size_t length ) {
int result = 0;

if( length >= 4 ) {
Expand All @@ -120,10 +120,10 @@ static int bson_string_is_db_ref( const unsigned char *string, const int length
}

static int bson_validate_string( bson *b, const unsigned char *string,
const int length, const char check_utf8, const char check_dot,
const size_t length, const char check_utf8, const char check_dot,
const char check_dollar ) {

int position = 0;
size_t position = 0;
int sequence_length = 1;

if( check_dollar && string[0] == '$' ) {
Expand Down Expand Up @@ -155,13 +155,13 @@ static int bson_validate_string( bson *b, const unsigned char *string,


int bson_check_string( bson *b, const char *string,
const int length ) {
const size_t length ) {

return bson_validate_string( b, ( const unsigned char * )string, length, 1, 0, 0 );
}

int bson_check_field_name( bson *b, const char *string,
const int length ) {
const size_t length ) {

return bson_validate_string( b, ( const unsigned char * )string, length, 1, 1, 1 );
}
4 changes: 2 additions & 2 deletions src/encoding.h
Expand Up @@ -35,7 +35,7 @@ MONGO_EXTERN_C_START
* Set the value of b->err appropriately.
*/
int bson_check_field_name( bson *b, const char *string,
const int length );
const size_t length );

/**
* Check that a string is valid UTF8. Sets the buffer bit field appropriately.
Expand All @@ -48,7 +48,7 @@ int bson_check_field_name( bson *b, const char *string,
* Sets b->err on error.
*/
bson_bool_t bson_check_string( bson *b, const char *string,
const int length );
const size_t length );

MONGO_EXTERN_C_END
#endif

0 comments on commit 1a1f5e2

Please sign in to comment.