MONGO_EXPORT void bson_iterator_subobject( const bson_iterator *i, bson *sub ) { check_mongo_object( (void*)sub ); check_mongo_object( (void*)i ); bson_init_data( sub, ( char * )bson_iterator_value( i ) ); _bson_reset( sub ); sub->finished = 1; }
static void _bson_init_size( bson *b, int size ) { if( size == 0 ) b->data = NULL; else b->data = ( char * )bson_malloc( size ); b->dataSize = size; b->cur = b->data + 4; _bson_reset( b ); }
static void _bson_init_size( bson *b, int size ) { ASSIGN_SIGNATURE(b, MONGO_SIGNATURE); if( size == 0 ) b->data = NULL; else b->data = ( char * )bson_malloc( size ); b->dataSize = size; b->cur = b->data + 4; _bson_reset( b ); }
MONGO_EXPORT void bson_iterator_code_scope( const bson_iterator *i, bson *scope ) { if ( bson_iterator_type( i ) == BSON_CODEWSCOPE ) { int code_len; bson_little_endian32( &code_len, bson_iterator_value( i )+4 ); bson_init_data( scope, ( void * )( bson_iterator_value( i )+8+code_len ) ); _bson_reset( scope ); scope->finished = 1; } else { bson_empty( scope ); } }
void bson_iterator_subobject( const bson_iterator *i, bson *sub ) { bson_init_data( sub, ( char * )bson_iterator_value( i ) ); _bson_reset( sub ); sub->finished = 1; }