2 * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
3 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
12 BerMemoryFunctions *ber_int_memory_fns = NULL;
16 ber_memfree( void *p )
18 ber_int_options.lbo_valid = LBER_INITIALIZED;
20 /* catch p == NULL when debugging */
23 /* ignore p == NULL when not debugging */
28 if( ber_int_memory_fns == NULL ) {
33 assert( ber_int_memory_fns->bmf_free );
35 (*ber_int_memory_fns->bmf_free)( p );
40 ber_memvfree( void **vec )
44 assert(vec != NULL); /* vec damn better point to something */
46 for ( i = 0; vec[i] != NULL; i++ ) {
55 ber_memalloc( size_t s )
57 ber_int_options.lbo_valid = LBER_INITIALIZED;
59 /* catch s == 0 when debugging */
62 /* ignore s == 0 when not debugging */
67 if( ber_int_memory_fns == NULL ) {
71 assert( ber_int_memory_fns->bmf_malloc );
73 return (*ber_int_memory_fns->bmf_malloc)( s );
78 ber_memcalloc( size_t n, size_t s )
80 ber_int_options.lbo_valid = LBER_INITIALIZED;
82 /* catch s,n == 0 when debugging */
85 /* ignore s,n == 0 when not debugging */
86 if( n == 0 || s == 0 ) {
90 if( ber_int_memory_fns == NULL ) {
91 return calloc( n, s );
94 assert( ber_int_memory_fns->bmf_calloc );
96 return (*ber_int_memory_fns->bmf_calloc)( n, s );
101 ber_memrealloc( void* p, size_t s )
103 ber_int_options.lbo_valid = LBER_INITIALIZED;
105 /* realloc(NULL,s) -> malloc(s) */
107 return ber_memalloc( s );
110 /* realloc(p,0) -> free(p) */
116 if( ber_int_memory_fns == NULL ) {
117 return realloc( p, s );
120 assert( ber_int_memory_fns->bmf_realloc );
122 return (*ber_int_memory_fns->bmf_realloc)( p, s );
127 ber_bvfree( struct berval *bv )
129 assert(bv != NULL); /* bv damn better point to something */
131 ber_int_options.lbo_valid = LBER_INITIALIZED;
133 if ( bv->bv_val != NULL )
134 LBER_FREE( bv->bv_val );
136 LBER_FREE( (char *) bv );
141 ber_bvecfree( struct berval **bv )
145 assert(bv != NULL); /* bv damn better point to something */
147 ber_int_options.lbo_valid = LBER_INITIALIZED;
149 for ( i = 0; bv[i] != NULL; i++ )
152 LBER_FREE( (char *) bv );
158 LDAP_CONST struct berval *bv )
162 assert( bv != NULL );
164 ber_int_options.lbo_valid = LBER_INITIALIZED;
171 if(( new = LBER_MALLOC( sizeof(struct berval) )) == NULL ) {
175 if ( bv->bv_val == NULL ) {
181 if(( new->bv_val = LBER_MALLOC( bv->bv_len + 1 )) == NULL ) {
186 SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len );
187 new->bv_val[bv->bv_len] = '\0';
188 new->bv_len = bv->bv_len;