Annotation of 43BSDTahoe/new/X/Xlib/XCreateAssoc.c, revision 1.1

1.1     ! root        1: #include <X/mit-copyright.h>
        !             2: 
        !             3: /* $Header: XCreateAssoc.c,v 10.7 86/12/16 17:12:11 tony Exp $ */
        !             4: /* Copyright    Massachusetts Institute of Technology    1985  */
        !             5: 
        !             6: #include "XlibInternal.h"
        !             7: 
        !             8: char *malloc();
        !             9: char *calloc();
        !            10: /*
        !            11:  * XCreateAssocTable - Create an XAssocTable.  The size argument should be
        !            12:  * a power of two for efficiency reasons.  Some size suggestions: use 32
        !            13:  * buckets per 100 objects;  a reasonable maximum number of object per
        !            14:  * buckets is 8.  If there is an error creating the XAssocTable, a NULL
        !            15:  * pointer is returned.
        !            16:  */
        !            17: XAssocTable *XCreateAssocTable(size)
        !            18:        register int size;              /* Desired size of the table. */
        !            19: {
        !            20:        register XAssocTable *table;    /* XAssocTable to be initialized. */
        !            21:        register XAssoc *buckets;       /* Pointer to the first bucket in */
        !            22:                                        /* the bucket array. */
        !            23:        
        !            24:        /* Malloc the XAssocTable. */
        !            25:        if ((table = (XAssocTable *)malloc(sizeof(XAssocTable))) == NULL) {
        !            26:                /* Malloc call failed! */
        !            27:                errno = ENOMEM;
        !            28:                return(NULL);
        !            29:        }
        !            30:        
        !            31:        /* Malloc the buckets (actually just their headers). */
        !            32:        buckets = (XAssoc *)calloc(size, sizeof(XAssoc));
        !            33:        if (buckets == NULL) {
        !            34:                /* Calloc call failed! */
        !            35:                errno = ENOMEM;
        !            36:                return(NULL);
        !            37:        }
        !            38: 
        !            39:        /* Insert table data into the XAssocTable structure. */
        !            40:        table->buckets = buckets;
        !            41:        table->size = size;
        !            42: 
        !            43:        while (--size >= 0) {
        !            44:                /* Initialize each bucket. */
        !            45:                buckets->prev = buckets;
        !            46:                buckets->next = buckets;
        !            47:                buckets++;
        !            48:        }
        !            49: 
        !            50:        return(table);
        !            51: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.