DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T o

⟦46421c666⟧ TextFile

    Length: 912 (0x390)
    Types: TextFile
    Names: »object.h«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/X/Xlife/object.h« 

TextFile

/* 
 *  This is a simple way to maintain a dynamically allocated array that
 *  grows in chunks. Essentially, obj is a a pointer to the object
 *  (starts off as NULL), and count is the number of elements in it.
 *  size is the currently allocated size, and incr is the size to
 *  increase it by if count == size. type is the type of the object - it
 *  callocs size*sizeof(type) elements for it, and casts this to (type
 *  *). Type is the reason this is a macro and not a procedure.
 *  basically you call this before you store something in obj[count].
 *  Greate for adding things at the end of lists
 */
/* Mark Moraes */
#define test_and_grow_object(obj, count, size, incr, type)\
	if((count) == (size) || (obj) == NULL) { \
		size += (incr);	\
		if ((obj) == NULL) \
			obj = (type *) XtCalloc(size, sizeof(type));\
		else \
			obj = (type *) XtRealloc((char *) obj, \
			 (size)*sizeof(type));\
	} else