move berval memory routines to memory.c

Add ber_memvfree(void** vector)
This commit is contained in:
Kurt Zeilenga 1999-06-01 19:01:05 +00:00
parent 89ffbead68
commit 4ccab0d4df
3 changed files with 88 additions and 63 deletions

View File

@ -745,69 +745,6 @@ va_dcl
return( rc );
}
void
ber_bvfree( struct berval *bv )
{
assert(bv != NULL); /* bv damn better point to something */
ber_int_options.lbo_valid = LBER_INITIALIZED;
if ( bv->bv_val != NULL )
LBER_FREE( bv->bv_val );
LBER_FREE( (char *) bv );
}
void
ber_bvecfree( struct berval **bv )
{
int i;
assert(bv != NULL); /* bv damn better point to something */
ber_int_options.lbo_valid = LBER_INITIALIZED;
for ( i = 0; bv[i] != NULL; i++ )
ber_bvfree( bv[i] );
LBER_FREE( (char *) bv );
}
struct berval *
ber_bvdup(
LDAP_CONST struct berval *bv )
{
struct berval *new;
assert( bv != NULL );
ber_int_options.lbo_valid = LBER_INITIALIZED;
if( bv == NULL ) {
return NULL;
}
if ( (new = (struct berval *) LBER_MALLOC( sizeof(struct berval) ))
== NULL ) {
return( NULL );
}
if ( bv->bv_val == NULL ) {
new->bv_val = NULL;
new->bv_len = 0;
return ( new );
}
if ( (new->bv_val = (char *) LBER_MALLOC( bv->bv_len + 1 )) == NULL ) {
LBER_FREE( new );
return( NULL );
}
SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len );
new->bv_val[bv->bv_len] = '\0';
new->bv_len = bv->bv_len;
return( new );
}
#ifdef STR_TRANSLATION
void

View File

@ -199,11 +199,13 @@ extern BerMemoryFunctions* ber_int_memory_fns;
#define LBER_INT_CALLOC(n,s) ber_memcalloc((n),(s))
#define LBER_INT_REALLOC(p,s) ber_memrealloc((p),(s))
#define LBER_INT_FREE(p) ber_memfree((p))
#define LBER_INT_VFREE(v) ber_memvfree((v))
#define LBER_MALLOC(s) ber_memalloc((s))
#define LBER_CALLOC(n,s) ber_memcalloc((n),(s))
#define LBER_REALLOC(p,s) ber_memrealloc((p),(s))
#define LBER_FREE(p) ber_memfree((p))
#define LBER_VFREE(v) ber_memvfree((v))
/* sockbuf.c */

View File

@ -11,6 +11,7 @@
BerMemoryFunctions *ber_int_memory_fns = NULL;
void
ber_memfree( void *p )
{
@ -34,6 +35,22 @@ ber_memfree( void *p )
(*ber_int_memory_fns->bmf_free)( p );
}
void
ber_memvfree( void **vec )
{
int i;
assert(vec != NULL); /* vec damn better point to something */
for ( i = 0; vec[i] != NULL; i++ ) {
LBER_FREE( vec[i] );
}
LBER_FREE( vec );
}
void *
ber_memalloc( size_t s )
{
@ -56,6 +73,7 @@ ber_memalloc( size_t s )
return (*ber_int_memory_fns->bmf_malloc)( s );
}
void *
ber_memcalloc( size_t n, size_t s )
{
@ -78,6 +96,7 @@ ber_memcalloc( size_t n, size_t s )
return (*ber_int_memory_fns->bmf_calloc)( n, s );
}
void *
ber_memrealloc( void* p, size_t s )
{
@ -103,3 +122,70 @@ ber_memrealloc( void* p, size_t s )
return (*ber_int_memory_fns->bmf_realloc)( p, s );
}
void
ber_bvfree( struct berval *bv )
{
assert(bv != NULL); /* bv damn better point to something */
ber_int_options.lbo_valid = LBER_INITIALIZED;
if ( bv->bv_val != NULL )
LBER_FREE( bv->bv_val );
LBER_FREE( (char *) bv );
}
void
ber_bvecfree( struct berval **bv )
{
int i;
assert(bv != NULL); /* bv damn better point to something */
ber_int_options.lbo_valid = LBER_INITIALIZED;
for ( i = 0; bv[i] != NULL; i++ )
ber_bvfree( bv[i] );
LBER_FREE( (char *) bv );
}
struct berval *
ber_bvdup(
LDAP_CONST struct berval *bv )
{
struct berval *new;
assert( bv != NULL );
ber_int_options.lbo_valid = LBER_INITIALIZED;
if( bv == NULL ) {
return NULL;
}
if(( new = LBER_MALLOC( sizeof(struct berval) )) == NULL ) {
return NULL;
}
if ( bv->bv_val == NULL ) {
new->bv_val = NULL;
new->bv_len = 0;
return new;
}
if(( new->bv_val = LBER_MALLOC( bv->bv_len + 1 )) == NULL ) {
LBER_FREE( new );
return NULL;
}
SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len );
new->bv_val[bv->bv_len] = '\0';
new->bv_len = bv->bv_len;
return( new );
}