@@ -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
308308MONGO_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+
617622static 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
744749static 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
783788MONGO_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
836841MONGO_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
856861MONGO_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" );
0 commit comments