Annotation of 43BSDTahoe/new/X/Xlib/XCreateAssoc.c, revision 1.1.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.