]> git.sur5r.net Git - openldap/commitdiff
Cleanup lbo_valid / meminuse / memfuncs
authorHoward Chu <hyc@openldap.org>
Sat, 12 Nov 2005 18:26:17 +0000 (18:26 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 12 Nov 2005 18:26:17 +0000 (18:26 +0000)
libraries/liblber/io.c
libraries/liblber/lber-int.h
libraries/liblber/memory.c
libraries/liblber/options.c
libraries/liblber/sockbuf.c

index fc37f8dfb20873880d04a4b2fb4bc26e03357595..19757b7826d88885248f81b099604332af3ef364 100644 (file)
@@ -248,8 +248,6 @@ ber_alloc_t( int options )
 {
        BerElement      *ber;
 
-    ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        ber = (BerElement *) LBER_CALLOC( 1, sizeof(BerElement) );
 
        if ( ber == NULL ) {
@@ -301,8 +299,6 @@ ber_init2( BerElement *ber, struct berval *bv, int options )
 {
        assert( ber != NULL );
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        (void) memset( (char *)ber, '\0', sizeof( BerElement ));
        ber->ber_valid = LBER_VALID_BERELEMENT;
        ber->ber_tag = LBER_DEFAULT;
@@ -336,8 +332,6 @@ ber_init( struct berval *bv )
 
        assert( bv != NULL );
 
-    ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if ( bv == NULL ) {
                return NULL;
        }
@@ -377,8 +371,6 @@ int ber_flatten2(
 {
        assert( bv != NULL );
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if ( bv == NULL ) {
                return -1;
        }
@@ -416,8 +408,6 @@ int ber_flatten(
  
        assert( bvPtr != NULL );
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if(bvPtr == NULL) {
                return -1;
        }
index 31335404052b7e82c041dedabb6cbb04172cf197..16cabd995cbb0d8893e07abf50105eacdb63d510 100644 (file)
@@ -38,11 +38,20 @@ typedef void (*BER_LOG_FN)(FILE *file,
 
 LBER_V (BER_ERRNO_FN) ber_int_errno_fn;
 
+#ifdef LDAP_MEMORY_TRACE
+# ifndef LDAP_MEMORY_DEBUG
+#  define LDAP_MEMORY_DEBUG 1
+# endif
+#endif
+
+#ifdef LDAP_MEMORY_DEBUG
+LBER_V (long)  ber_int_meminuse;
+#endif
+
 struct lber_options {
        short lbo_valid;
        unsigned short          lbo_options;
        int                     lbo_debug;
-       long            lbo_meminuse;
 };
 
 LBER_F( int ) ber_pvt_log_output(
index a9dc92b915fb3ac06719fd40e2d746bbebbdba05..899babb87c763180f40c77a84c77699746f5f98c 100644 (file)
@@ -21,9 +21,6 @@
 #include "lber-int.h"
 
 #ifdef LDAP_MEMORY_TRACE
-# ifndef LDAP_MEMORY_DEBUG
-#  define LDAP_MEMORY_DEBUG 1
-# endif
 #include <stdio.h>
 #endif
 
@@ -67,7 +64,7 @@ struct ber_mem_hdr {
 
 static const struct ber_mem_hdr ber_int_mem_hdr = { LBER_MEM_JUNK, 0, 0 };
 
-/* Note sequence and ber_int_options.lbu_meminuse are counters, but are not
+/* Note sequence and ber_int_meminuse are counters, but are not
  * thread safe.  If you want to use these values for multithreaded applications,
  * you must put mutexes around them, otherwise they will have incorrect values.
  * When debugging, if you sort the debug output, the sequence number will 
@@ -125,8 +122,6 @@ BerMemoryFunctions *ber_int_memory_fns = NULL;
 void
 ber_memfree_x( void *p, void *ctx )
 {
-    ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( p == NULL ) {
                return;
        }
@@ -140,12 +135,12 @@ ber_memfree_x( void *p, void *ctx )
                assert( mh->bm_top == LBER_MEM_JUNK);
                assert( testdatatop( mh));
                assert( testend( (char *)&mh[1] + mh->bm_length) );
-               ber_int_options.lbo_meminuse -= mh->bm_length;
+               ber_int_meminuse -= mh->bm_length;
 
 #ifdef LDAP_MEMORY_TRACE
                fprintf(stderr, "0x%08lx 0x%08lx -f- %ld ber_memfree %ld\n",
                        (long)mh->bm_sequence, (long)mh, (long)mh->bm_length,
-                       ber_int_options.lbo_meminuse);
+                       ber_int_meminuse);
 #endif
                /* Fill the free space with poison */
                memset( mh, 0xff, mh->bm_length + sizeof(struct ber_mem_hdr) + sizeof(ber_int_t));
@@ -172,8 +167,6 @@ ber_memvfree_x( void **vec, void *ctx )
 {
        int     i;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( vec == NULL ) {
                return;
        }
@@ -197,7 +190,6 @@ void *
 ber_memalloc_x( ber_len_t s, void *ctx )
 {
        void *new;
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
 
 #ifdef LDAP_MEMORY_DEBUG
        assert( s != 0 );
@@ -217,13 +209,13 @@ ber_memalloc_x( ber_len_t s, void *ctx )
                setdatatop( mh);
                setend( (char *)&mh[1] + mh->bm_length );
 
-               ber_int_options.lbo_meminuse += mh->bm_length;  /* Count mem inuse */
+               ber_int_meminuse += mh->bm_length;      /* Count mem inuse */
 
 #ifdef LDAP_MEMORY_TRACE
                mh->bm_sequence = sequence++;
                fprintf(stderr, "0x%08lx 0x%08lx -a- %ld ber_memalloc %ld\n",
                        (long)mh->bm_sequence, (long)mh, (long)mh->bm_length,
-                       ber_int_options.lbo_meminuse);
+                       ber_int_meminuse);
 #endif
                /* poison new memory */
                memset( (char *)&mh[1], 0xff, s);
@@ -254,7 +246,6 @@ void *
 ber_memcalloc_x( ber_len_t n, ber_len_t s, void *ctx )
 {
        void *new;
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
 
 #ifdef LDAP_MEMORY_DEBUG
        assert( n != 0 && s != 0);
@@ -275,13 +266,13 @@ ber_memcalloc_x( ber_len_t n, ber_len_t s, void *ctx )
                setdatatop( mh);
                setend( (char *)&mh[1] + mh->bm_length );
 
-               ber_int_options.lbo_meminuse += mh->bm_length;
+               ber_int_meminuse += mh->bm_length;
 
 #ifdef LDAP_MEMORY_TRACE
                mh->bm_sequence = sequence++;
                fprintf(stderr, "0x%08lx 0x%08lx -a- %ld ber_memcalloc %ld\n",
                        (long)mh->bm_sequence, (long)mh, (long)mh->bm_length,
-                       ber_int_options.lbo_meminuse);
+                       ber_int_meminuse);
 #endif
                BER_MEM_VALID( &mh[1] );
                new = &mh[1];
@@ -310,7 +301,6 @@ void *
 ber_memrealloc_x( void* p, ber_len_t s, void *ctx )
 {
        void *new = NULL;
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
 
        /* realloc(NULL,s) -> malloc(s) */
        if( p == NULL ) {
@@ -352,11 +342,11 @@ ber_memrealloc_x( void* p, ber_len_t s, void *ctx )
                assert( mh->bm_top == LBER_MEM_JUNK);
                assert( testdatatop( mh));
 
-               ber_int_options.lbo_meminuse += s - oldlen;
+               ber_int_meminuse += s - oldlen;
 #ifdef LDAP_MEMORY_TRACE
                fprintf(stderr, "0x%08lx 0x%08lx -a- %ld ber_memrealloc %ld\n",
                        (long)mh->bm_sequence, (long)mh, (long)mh->bm_length,
-                       ber_int_options.lbo_meminuse);
+                       ber_int_meminuse);
 #endif
                        BER_MEM_VALID( &mh[1] );
                return &mh[1];
@@ -383,8 +373,6 @@ ber_memrealloc( void* p, ber_len_t s )
 void
 ber_bvfree_x( struct berval *bv, void *ctx )
 {
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( bv == NULL ) {
                return;
        }
@@ -409,8 +397,6 @@ ber_bvecfree_x( struct berval **bv, void *ctx )
 {
        int     i;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( bv == NULL ) {
                return;
        }
@@ -440,8 +426,6 @@ ber_bvecadd_x( struct berval ***bvec, struct berval *bv, void *ctx )
        ber_len_t i;
        struct berval **new;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( *bvec == NULL ) {
                if( bv == NULL ) {
                        /* nothing to add */
@@ -497,8 +481,6 @@ ber_dupbv_x(
 {
        struct berval *new;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( src == NULL ) {
                ber_errno = LBER_ERROR_PARAM;
                return NULL;
@@ -554,8 +536,6 @@ ber_str2bv_x(
 {
        struct berval *new;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( s == NULL ) {
                ber_errno = LBER_ERROR_PARAM;
                return NULL;
@@ -602,8 +582,6 @@ ber_mem2bv_x(
 {
        struct berval *new;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if( s == NULL ) {
                ber_errno = LBER_ERROR_PARAM;
                return NULL;
@@ -650,8 +628,6 @@ ber_strdup_x( LDAP_CONST char *s, void *ctx )
        char    *p;
        size_t  len;
        
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
 #ifdef LDAP_MEMORY_DEBUG
        assert(s != NULL);                      /* bv damn better point to something */
 #endif
@@ -684,8 +660,6 @@ ber_strndup_x( LDAP_CONST char *s, ber_len_t l, void *ctx )
        char    *p;
        size_t  len;
        
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
 #ifdef LDAP_MEMORY_DEBUG
        assert(s != NULL);                      /* bv damn better point to something */
 #endif
@@ -748,8 +722,6 @@ ber_bvarray_free_x( BerVarray a, void *ctx )
 {
        int i;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if (a) {
                BER_MEM_VALID( a );
 
@@ -776,8 +748,6 @@ ber_bvarray_add_x( BerVarray *a, BerValue *bv, void *ctx )
 {
        int     n;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if ( *a == NULL ) {
                if (bv == NULL) {
                        return 0;
index 39f58a6bef26be2873429765181752c100702214..6982ab79f4a9777af380d923d00bebd7d9034a32 100644 (file)
@@ -23,7 +23,7 @@
 char ber_pvt_opt_on;   /* used to get a non-NULL address for *_OPT_ON */
 
 struct lber_options ber_int_options = {
-       LBER_UNINITIALIZED, 0, 0, 0 };
+       LBER_UNINITIALIZED, 0, 0 };
 
 static BerMemoryFunctions      ber_int_memory_fns_datum;
 
@@ -36,8 +36,6 @@ ber_get_option(
        const BerElement *ber;
        const Sockbuf *sb;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if(outvalue == NULL) {
                /* no place to get to */
                ber_errno = LBER_ERROR_PARAM;
@@ -59,7 +57,7 @@ ber_get_option(
                         * The counter is not accurate for multithreaded ldap applications.
                         */
 #ifdef LDAP_MEMORY_DEBUG
-                       * (int *) outvalue = ber_int_options.lbo_meminuse;
+                       * (int *) outvalue = ber_int_meminuse;
                        return LBER_OPT_SUCCESS;
 #else
                        return LBER_OPT_ERROR;
@@ -126,31 +124,6 @@ ber_set_option(
        BerElement *ber;
        Sockbuf *sb;
 
-       if( (ber_int_options.lbo_valid == LBER_UNINITIALIZED)
-               && ( ber_int_memory_fns == NULL )
-               && ( option == LBER_OPT_MEMORY_FNS )
-               && ( invalue != NULL ) )
-       {
-               const BerMemoryFunctions *f =
-                       (const BerMemoryFunctions *) invalue;
-               /* make sure all functions are provided */
-               if(!( f->bmf_malloc && f->bmf_calloc
-                       && f->bmf_realloc && f->bmf_free ))
-               {
-                       ber_errno = LBER_ERROR_PARAM;
-                       return LBER_OPT_ERROR;
-               }
-
-               ber_int_memory_fns = &ber_int_memory_fns_datum;
-
-               AC_MEMCPY(ber_int_memory_fns, f, sizeof(BerMemoryFunctions));
-
-               ber_int_options.lbo_valid = LBER_INITIALIZED;
-               return LBER_OPT_SUCCESS;
-       }
-
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        if(invalue == NULL) {
                /* no place to set from */
                ber_errno = LBER_ERROR_PARAM;
@@ -180,11 +153,33 @@ ber_set_option(
                         * The counter is not accurate for multithreaded applications.
                         */
 #ifdef LDAP_MEMORY_DEBUG
-                       ber_int_options.lbo_meminuse = * (int *) invalue;
+                       ber_int_meminuse = * (int *) invalue;
                        return LBER_OPT_SUCCESS;
 #else
                        return LBER_OPT_ERROR;
 #endif
+               case LBER_OPT_MEMORY_FNS:
+                       if ( ber_int_memory_fns == NULL )
+                       {
+                               const BerMemoryFunctions *f =
+                                       (const BerMemoryFunctions *) invalue;
+                               /* make sure all functions are provided */
+                               if(!( f->bmf_malloc && f->bmf_calloc
+                                       && f->bmf_realloc && f->bmf_free ))
+                               {
+                                       ber_errno = LBER_ERROR_PARAM;
+                                       return LBER_OPT_ERROR;
+                               }
+
+                               ber_int_memory_fns = &ber_int_memory_fns_datum;
+
+                               AC_MEMCPY(ber_int_memory_fns, f,
+                                        sizeof(BerMemoryFunctions));
+
+                               return LBER_OPT_SUCCESS;
+                       }
+                       break;
+
                case LBER_OPT_LOG_PROC:
                        ber_int_log_proc = (BER_LOG_FN)invalue;
                        return LBER_OPT_SUCCESS;
index c30469cdecb396bd4908de4d04163817b60d513b..21cf9eacb48ef3e43c0d28b99bdaaac49393ed75 100644 (file)
@@ -57,8 +57,6 @@ ber_sockbuf_alloc( void )
 {
        Sockbuf                 *sb;
 
-       ber_int_options.lbo_valid = LBER_INITIALIZED;
-
        sb = LBER_CALLOC( 1, sizeof( Sockbuf ) );
 
        if( sb == NULL ) return NULL;