[Javabdd-checkins] JavaBDD/buddy/src trace.c,1.1,1.2 trace.h,1.1,1.2
Brought to you by:
joewhaley
From: John W. <joe...@us...> - 2004-11-17 23:07:05
|
Update of /cvsroot/javabdd/JavaBDD/buddy/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20208/buddy/src Modified Files: trace.c trace.h Log Message: Improvements to the trace generation. Index: trace.c =================================================================== RCS file: /cvsroot/javabdd/JavaBDD/buddy/src/trace.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** trace.c 29 Sep 2004 10:00:50 -0000 1.1 --- trace.c 17 Nov 2004 23:06:56 -0000 1.2 *************** *** 2,6 **** --- 2,8 ---- #ifdef GENERATE_TRACE + #if defined(HAS_UNISTD_H) #include <unistd.h> + #endif #include <stdio.h> #include <stdlib.h> *************** *** 16,19 **** --- 18,63 ---- /* Simple trace file generation */ + + #define FAST_MALLOC + + #ifdef FAST_MALLOC + static char* bufferStart = 0; + static char* bufferPtr = 0; + static char* bufferEnd = 0; + static int startSize = 1<<16; + static void grow_malloc(int sz) + { + int oldSize, newSize; + oldSize = bufferEnd - bufferStart; + newSize = oldSize*2; + if (newSize < oldSize+sz) newSize = oldSize+sz; + if (newSize < startSize) newSize = startSize; + bufferStart = malloc(newSize); + assert(bufferStart); + bufferPtr = bufferStart; + bufferEnd = bufferStart + newSize; + } + + static __inline__ void * xmalloc(int sz) + { + void * retval; + if (bufferEnd - bufferPtr < sz) { + grow_malloc(sz); + } + retval = bufferPtr; + bufferPtr += sz; + return retval; + } + #else + static __inline__ void * xmalloc(int sz) + { + void * retval = malloc(sz); + assert(retval); + return retval; + } + #endif + + + FILE * tracefp; const char * trace_fname; *************** *** 399,408 **** void output_trace(void) { if(trace_outputted) return; trace_outputted = 1; ! int i, first = 0; ! struct bdd_function * f; emit_header(); --- 443,454 ---- void output_trace(void) { + int i, first; + struct bdd_function * f; + if(trace_outputted) return; trace_outputted = 1; ! first = 0; emit_header(); Index: trace.h =================================================================== RCS file: /cvsroot/javabdd/JavaBDD/buddy/src/trace.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** trace.h 29 Sep 2004 10:00:50 -0000 1.1 --- trace.h 17 Nov 2004 23:06:56 -0000 1.2 *************** *** 4,7 **** --- 4,15 ---- #ifdef GENERATE_TRACE + /* Windows peculiarities */ + #if defined(_MSC_VER) || defined(WIN32) + #define __inline__ + #define __func__ __FUNCTION__ + #else + #define HAS_UNISTD_H + #endif + #define BUDDY_PROLOGUE \ int was_enabled = trace_enable; \ *************** *** 54,65 **** }; - - static __inline__ void * xmalloc(int sz) - { - void * retval = malloc(sz); - assert(retval); - return retval; - } - void trace_init(const char *filename); void trace_add_bdd(enum arg_type type,void * val); --- 62,65 ---- |