Skip to content
This repository was archived by the owner on Apr 9, 2025. It is now read-only.

Commit 1a1f5e2

Browse files
author
Jérôme Lebel
committed
don't mix up int and size_t (first pass to fix that)
1 parent de11258 commit 1a1f5e2

File tree

10 files changed

+88
-83
lines changed

10 files changed

+88
-83
lines changed

Diff for: src/bcon.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ static bcon_error_t bson_append_bcon_with_state(bson *b, const bcon *bc, bcon_st
172172
unsigned char doc_stack[DOC_STACK_SIZE];
173173
size_t doc_stack_pointer = 0;
174174
size_t array_index = 0;
175-
unsigned int array_index_stack[ARRAY_INDEX_STACK_SIZE];
175+
size_t array_index_stack[ARRAY_INDEX_STACK_SIZE];
176176
size_t array_index_stack_pointer = 0;
177177
char array_index_buffer[ARRAY_INDEX_BUFFER_SIZE]; /* max BSON size */
178178
int end_of_data;

Diff for: src/bson.c

+32-27
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ MONGO_EXPORT int bson_size( const bson *b ) {
106106
return i;
107107
}
108108

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

@@ -306,7 +306,7 @@ MONGO_EXPORT bson_bool_t bson_iterator_more( const bson_iterator *i ) {
306306
}
307307

308308
MONGO_EXPORT bson_type bson_iterator_next( bson_iterator *i ) {
309-
int ds;
309+
size_t ds;
310310

311311
if ( i->first ) {
312312
i->first = 0;
@@ -420,7 +420,7 @@ MONGO_EXPORT int bson_iterator_int( const bson_iterator *i ) {
420420
case BSON_INT:
421421
return bson_iterator_int_raw( i );
422422
case BSON_LONG:
423-
return bson_iterator_long_raw( i );
423+
return ( int )bson_iterator_long_raw( i );
424424
case BSON_DOUBLE:
425425
return bson_iterator_double_raw( i );
426426
default:
@@ -604,7 +604,7 @@ static void bson_append_byte( bson *b, char c ) {
604604
b->cur++;
605605
}
606606

607-
static void bson_append( bson *b, const void *data, int len ) {
607+
static void bson_append( bson *b, const void *data, size_t len ) {
608608
memcpy( b->cur , data , len );
609609
b->cur += len;
610610
}
@@ -614,12 +614,17 @@ static void bson_append32( bson *b, const void *data ) {
614614
b->cur += 4;
615615
}
616616

617+
static void bson_append32_as_int( bson *b, int data ) {
618+
bson_little_endian32( b->cur, &data );
619+
b->cur += 4;
620+
}
621+
617622
static void bson_append64( bson *b, const void *data ) {
618623
bson_little_endian64( b->cur, data );
619624
b->cur += 8;
620625
}
621626

622-
int bson_ensure_space( bson *b, const int bytesNeeded ) {
627+
int bson_ensure_space( bson *b, const size_t bytesNeeded ) {
623628
int pos = b->cur - b->data;
624629
char *orig = b->data;
625630
int new_size;
@@ -657,7 +662,7 @@ MONGO_EXPORT int bson_finish( bson *b ) {
657662
if ( ! b->finished ) {
658663
if ( bson_ensure_space( b, 1 ) == BSON_ERROR ) return BSON_ERROR;
659664
bson_append_byte( b, 0 );
660-
i = b->cur - b->data;
665+
i = ( int )( b->cur - b->data );
661666
bson_little_endian32( b->data, &i );
662667
b->finished = 1;
663668
}
@@ -675,7 +680,7 @@ MONGO_EXPORT void bson_destroy( bson *b ) {
675680
}
676681
}
677682

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

681686
if ( b->finished ) {
@@ -742,15 +747,15 @@ MONGO_EXPORT int bson_append_undefined( bson *b, const char *name ) {
742747
}
743748

744749
static int bson_append_string_base( bson *b, const char *name,
745-
const char *value, int len, bson_type type ) {
750+
const char *value, size_t len, bson_type type ) {
746751

747-
int sl = len + 1;
752+
size_t sl = len + 1;
748753
if ( bson_check_string( b, ( const char * )value, sl - 1 ) == BSON_ERROR )
749754
return BSON_ERROR;
750755
if ( bson_append_estart( b, type, name, 4 + sl ) == BSON_ERROR ) {
751756
return BSON_ERROR;
752757
}
753-
bson_append32( b , &sl );
758+
bson_append32_as_int( b , ( int )sl );
754759
bson_append( b , value , sl - 1 );
755760
bson_append( b , "\0" , 1 );
756761
return BSON_OK;
@@ -768,28 +773,28 @@ MONGO_EXPORT int bson_append_code( bson *b, const char *name, const char *value
768773
return bson_append_string_base( b, name, value, strlen ( value ), BSON_CODE );
769774
}
770775

771-
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *value, int len ) {
776+
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *value, size_t len ) {
772777
return bson_append_string_base( b, name, value, len, BSON_STRING );
773778
}
774779

775-
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *value, int len ) {
780+
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *value, size_t len ) {
776781
return bson_append_string_base( b, name, value, len, BSON_SYMBOL );
777782
}
778783

779-
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *value, int len ) {
784+
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *value, size_t len ) {
780785
return bson_append_string_base( b, name, value, len, BSON_CODE );
781786
}
782787

783788
MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name,
784-
const char *code, int len, const bson *scope ) {
789+
const char *code, size_t len, const bson *scope ) {
785790

786-
int sl, size;
791+
size_t sl, size;
787792
if ( !scope ) return BSON_ERROR;
788793
sl = len + 1;
789794
size = 4 + 4 + sl + bson_size( scope );
790795
if ( bson_append_estart( b, BSON_CODEWSCOPE, name, size ) == BSON_ERROR )
791796
return BSON_ERROR;
792-
bson_append32( b, &size );
797+
bson_append32_as_int( b, ( int )size );
793798
bson_append32( b, &sl );
794799
bson_append( b, code, sl );
795800
bson_append( b, scope->data, bson_size( scope ) );
@@ -800,20 +805,20 @@ MONGO_EXPORT int bson_append_code_w_scope( bson *b, const char *name, const char
800805
return bson_append_code_w_scope_n( b, name, code, strlen ( code ), scope );
801806
}
802807

803-
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, int len ) {
808+
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, size_t len ) {
804809
if ( type == BSON_BIN_BINARY_OLD ) {
805810
int subtwolen = len + 4;
806811
if ( bson_append_estart( b, BSON_BINDATA, name, 4+1+4+len ) == BSON_ERROR )
807812
return BSON_ERROR;
808-
bson_append32( b, &subtwolen );
813+
bson_append32_as_int( b, ( int )subtwolen );
809814
bson_append_byte( b, type );
810-
bson_append32( b, &len );
815+
bson_append32_as_int( b, ( int )len );
811816
bson_append( b, str, len );
812817
}
813818
else {
814819
if ( bson_append_estart( b, BSON_BINDATA, name, 4+1+len ) == BSON_ERROR )
815820
return BSON_ERROR;
816-
bson_append32( b, &len );
821+
bson_append32_as_int( b, ( int )len );
817822
bson_append_byte( b, type );
818823
bson_append( b, str, len );
819824
}
@@ -834,8 +839,8 @@ MONGO_EXPORT int bson_append_new_oid( bson *b, const char *name ) {
834839
}
835840

836841
MONGO_EXPORT int bson_append_regex( bson *b, const char *name, const char *pattern, const char *opts ) {
837-
const int plen = strlen( pattern )+1;
838-
const int olen = strlen( opts )+1;
842+
const size_t plen = strlen( pattern )+1;
843+
const size_t olen = strlen( opts )+1;
839844
if ( bson_append_estart( b, BSON_REGEX, name, plen + olen ) == BSON_ERROR )
840845
return BSON_ERROR;
841846
if ( bson_check_string( b, pattern, plen - 1 ) == BSON_ERROR )
@@ -855,7 +860,7 @@ MONGO_EXPORT int bson_append_bson( bson *b, const char *name, const bson *bson )
855860

856861
MONGO_EXPORT int bson_append_element( bson *b, const char *name_or_null, const bson_iterator *elem ) {
857862
bson_iterator next = *elem;
858-
int size;
863+
size_t size;
859864

860865
bson_iterator_next( &next );
861866
size = next.cur - elem->cur;
@@ -866,7 +871,7 @@ MONGO_EXPORT int bson_append_element( bson *b, const char *name_or_null, const b
866871
bson_append( b, elem->cur, size );
867872
}
868873
else {
869-
int data_size = size - 2 - strlen( bson_iterator_key( elem ) );
874+
size_t data_size = size - 2 - strlen( bson_iterator_key( elem ) );
870875
bson_append_estart( b, elem->cur[0], name_or_null, data_size );
871876
bson_append( b, bson_iterator_value( elem ), data_size );
872877
}
@@ -922,7 +927,7 @@ MONGO_EXPORT int bson_append_finish_object( bson *b ) {
922927
bson_append_byte( b , 0 );
923928

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

928933
return BSON_OK;
@@ -950,14 +955,14 @@ MONGO_EXPORT void bson_free( void *ptr ) {
950955
bson_free_func( ptr );
951956
}
952957

953-
MONGO_EXPORT void *bson_malloc( int size ) {
958+
MONGO_EXPORT void *bson_malloc( size_t size ) {
954959
void *p;
955960
p = bson_malloc_func( size );
956961
bson_fatal_msg( !!p, "malloc() failed" );
957962
return p;
958963
}
959964

960-
void *bson_realloc( void *ptr, int size ) {
965+
void *bson_realloc( void *ptr, size_t size ) {
961966
void *p;
962967
p = bson_realloc_func( ptr, size );
963968
bson_fatal_msg( !!p, "realloc() failed" );

Diff for: src/bson.h

+10-10
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ typedef struct {
135135
char *cur; /**< Pointer to the current position. */
136136
int dataSize; /**< The number of bytes allocated to char *data. */
137137
bson_bool_t finished; /**< When finished, the BSON object can no longer be modified. */
138-
int stack[32]; /**< A stack used to keep track of nested BSON elements. */
138+
size_t stack[32]; /**< A stack used to keep track of nested BSON elements. */
139139
int stackPos; /**< Index of current stack position. */
140140
int err; /**< Bitfield representing errors or warnings on this buffer */
141141
char *errstr; /**< A string representation of the most recent error or warning. */
@@ -170,7 +170,7 @@ MONGO_EXPORT void bson_dispose(bson* b);
170170
* @return the size.
171171
*/
172172
MONGO_EXPORT int bson_size( const bson *b );
173-
MONGO_EXPORT int bson_buffer_size( const bson *b );
173+
MONGO_EXPORT size_t bson_buffer_size( const bson *b );
174174

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

607607
/**
608608
* Finalize a bson object.
@@ -717,7 +717,7 @@ MONGO_EXPORT int bson_append_string( bson *b, const char *name, const char *str
717717
*
718718
* @return BSON_OK or BSON_ERROR.
719719
*/
720-
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *str, int len );
720+
MONGO_EXPORT int bson_append_string_n( bson *b, const char *name, const char *str, size_t len );
721721

722722
/**
723723
* Append a symbol to a bson.
@@ -740,7 +740,7 @@ MONGO_EXPORT int bson_append_symbol( bson *b, const char *name, const char *str
740740
*
741741
* @return BSON_OK or BSON_ERROR.
742742
*/
743-
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *str, int len );
743+
MONGO_EXPORT int bson_append_symbol_n( bson *b, const char *name, const char *str, size_t len );
744744

745745
/**
746746
* Append code to a bson.
@@ -764,7 +764,7 @@ MONGO_EXPORT int bson_append_code( bson *b, const char *name, const char *str );
764764
*
765765
* @return BSON_OK or BSON_ERROR.
766766
*/
767-
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *str, int len );
767+
MONGO_EXPORT int bson_append_code_n( bson *b, const char *name, const char *str, size_t len );
768768

769769
/**
770770
* Append code to a bson with scope.
@@ -789,7 +789,7 @@ MONGO_EXPORT int bson_append_code_w_scope( bson *b, const char *name, const char
789789
*
790790
* @return BSON_OK or BSON_ERROR.
791791
*/
792-
MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name, const char *code, int size, const bson *scope );
792+
MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name, const char *code, size_t size, const bson *scope );
793793

794794
/**
795795
* Append binary data to a bson.
@@ -802,7 +802,7 @@ MONGO_EXPORT int bson_append_code_w_scope_n( bson *b, const char *name, const ch
802802
*
803803
* @return BSON_OK or BSON_ERROR.
804804
*/
805-
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, int len );
805+
MONGO_EXPORT int bson_append_binary( bson *b, const char *name, char type, const char *str, size_t len );
806806

807807
/**
808808
* Append a bson_bool_t to a bson.
@@ -977,7 +977,7 @@ MONGO_EXPORT void bson_free( void *ptr );
977977
*
978978
* @sa malloc(3)
979979
*/
980-
MONGO_EXPORT void *bson_malloc( int size );
980+
MONGO_EXPORT void *bson_malloc( size_t size );
981981

982982
/**
983983
* Changes the size of allocated memory and checks return value,
@@ -990,7 +990,7 @@ MONGO_EXPORT void *bson_malloc( int size );
990990
*
991991
* @sa realloc()
992992
*/
993-
void *bson_realloc( void *ptr, int size );
993+
void *bson_realloc( void *ptr, size_t size );
994994

995995
/**
996996
* Set a function for error handling.

Diff for: src/encoding.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ static int isLegalUTF8( const unsigned char *source, int length ) {
102102
}
103103

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

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

122122
static int bson_validate_string( bson *b, const unsigned char *string,
123-
const int length, const char check_utf8, const char check_dot,
123+
const size_t length, const char check_utf8, const char check_dot,
124124
const char check_dollar ) {
125125

126-
int position = 0;
126+
size_t position = 0;
127127
int sequence_length = 1;
128128

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

156156

157157
int bson_check_string( bson *b, const char *string,
158-
const int length ) {
158+
const size_t length ) {
159159

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

163163
int bson_check_field_name( bson *b, const char *string,
164-
const int length ) {
164+
const size_t length ) {
165165

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

Diff for: src/encoding.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ MONGO_EXTERN_C_START
3535
* Set the value of b->err appropriately.
3636
*/
3737
int bson_check_field_name( bson *b, const char *string,
38-
const int length );
38+
const size_t length );
3939

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

5353
MONGO_EXTERN_C_END
5454
#endif

0 commit comments

Comments
 (0)