mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
move berval memory routines to memory.c
Add ber_memvfree(void** vector)
This commit is contained in:
parent
89ffbead68
commit
4ccab0d4df
@ -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
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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 );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user