Made loging thread-safe
authorstefan <none@none>
Fri, 5 Dec 2003 18:03:47 +0000 (18:03 +0000)
committerstefan <none@none>
Fri, 5 Dec 2003 18:03:47 +0000 (18:03 +0000)
30 files changed:
builtin.c
headers.c
jit/i386/codegen.c
jit/inline.c
jit/jit.c
jit/parse.c
jit/x86_64/codegen.c
loader.c
main.c
mm/boehm.c
nat/Constructor.c
native.c
src/cacao/cacao.c
src/cacaoh/headers.c
src/mm/boehm.c
src/mm/memory.c
src/native/native.c
src/native/vm/Constructor.c
src/vm/builtin.c
src/vm/jit/i386/codegen.c
src/vm/jit/inline/inline.c
src/vm/jit/jit.c
src/vm/jit/parse.c
src/vm/jit/x86_64/codegen.c
src/vm/loader.c
src/vm/tables.c
tables.c
toolbox/loging.c
toolbox/loging.h
toolbox/memory.c

index a866f4b800065aba5ade523f26cfe66721a3c14f..1610b83ef98cbfecb08dfb2f9ea6b31055d3a3b5 100644 (file)
--- a/builtin.c
+++ b/builtin.c
@@ -34,7 +34,7 @@
    calls instead of machine instructions, using the C calling
    convention.
 
-   $Id: builtin.c 686 2003-12-04 11:35:11Z stefan $
+   $Id: builtin.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -337,6 +337,7 @@ s4 builtin_arrayinstanceof(java_objectheader *obj,arraydescriptor *desc)
 java_objectheader *builtin_throw_exception(java_objectheader *local_exceptionptr)
 {
        if (verbose) {
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "Builtin exception thrown: ");
                if (local_exceptionptr)
                        utf_sprint(logtext + strlen(logtext), local_exceptionptr->vftbl->class->name);
@@ -353,7 +354,7 @@ java_objectheader *builtin_throw_exception(java_objectheader *local_exceptionptr
                        if (!proto_java_lang_ThreadDeath) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ThreadDeath==0");
                        if (!proto_java_lang_ThreadDeath) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ThreadDeath==0");
                        }
-               dolog();
+               dolog(logtext);
        }
        exceptionptr = local_exceptionptr;
        return local_exceptionptr;
@@ -796,6 +797,7 @@ void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
 {
 
        int i;
+       char logtext[MAXLOGTEXT];
        for (i = 0; i < methodindent; i++)
                logtext[i] = '\t';
        sprintf(logtext + methodindent, "called: ");
@@ -910,7 +912,7 @@ void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
 #endif
        }
        sprintf (logtext+strlen(logtext), ")");
-       dolog ();
+       dolog (logtext);
 
        methodindent++;
 }
@@ -919,13 +921,14 @@ void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
 
 void builtin_displaymethodstart(methodinfo *method)
 {
+       char logtext[MAXLOGTEXT];
        sprintf(logtext, "                                                                                              ");
        sprintf(logtext + methodindent, "called: ");
        utf_sprint(logtext + strlen(logtext), method->class->name);
        sprintf(logtext + strlen(logtext), ".");
        utf_sprint(logtext + strlen(logtext), method->name);
        utf_sprint(logtext + strlen(logtext), method->descriptor);
-       dolog();
+       dolog(logtext);
        methodindent++;
 }
 
@@ -933,6 +936,7 @@ void builtin_displaymethodstart(methodinfo *method)
 void builtin_displaymethodstop(methodinfo *method, s8 l, double d, float f)
 {
        int i;
+       char logtext[MAXLOGTEXT];
        for (i = 0; i < methodindent; i++)
                logtext[i] = '\t';
        methodindent--;
@@ -967,13 +971,14 @@ void builtin_displaymethodstop(methodinfo *method, s8 l, double d, float f)
                sprintf(logtext + strlen(logtext), "->%g", d);
                break;
        }
-       dolog();
+       dolog(logtext);
 }
 
 
 void builtin_displaymethodexception(methodinfo *method)
 {
        int i;
+       char logtext[MAXLOGTEXT];
        for (i = 0; i < methodindent; i++)
                logtext[i] = '\t';
        sprintf(logtext + methodindent, "exception abort: ");
@@ -981,7 +986,7 @@ void builtin_displaymethodexception(methodinfo *method)
        sprintf(logtext + strlen(logtext), ".");
        utf_sprint(logtext + strlen(logtext), method->name);
        utf_sprint(logtext + strlen(logtext), method->descriptor);
-       dolog();
+       dolog(logtext);
 }
 
 
index 541cf0081b897e099bd96631fb5e3dec9ee87a22..6320ac10b6a43420402b992ee9087afd555e035f 100644 (file)
--- a/headers.c
+++ b/headers.c
@@ -29,7 +29,7 @@
    Changes: Mark Probst
             Philipp Tomsich
 
-   $Id: headers.c 685 2003-12-04 01:25:54Z jowenn $
+   $Id: headers.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -62,8 +62,10 @@ void throw_classnotfoundexception()
 
 void throw_classnotfoundexception2(utf* classname) 
 { 
+       /* [stefan] code was useless
        sprintf (logtext, "Loading class: ");
-        utf_sprint (logtext+strlen(logtext), classname);
+       utf_sprint (logtext+strlen(logtext), classname);
+       */
        panic("******class not found"); 
 }
 
index 21bf294baf0bed636725075abdaef827eabafad5..a02c8e2ac1bedb5522dbb9d6e0b257238d7f339f 100644 (file)
@@ -28,7 +28,7 @@
    Authors: Andreas Krall
             Christian Thalinger
 
-   $Id: codegen.c 688 2003-12-04 23:50:25Z jowenn $
+   $Id: codegen.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -4088,8 +4088,7 @@ gen_method: {
 
                                default:
                                        d = 0;
-                                       sprintf(logtext, "Unkown ICMD-Command: %d", iptr->opc);
-                                       error();
+                                       error("Unkown ICMD-Command: %d", iptr->opc);
                                }
 
                        /* d contains return type */
@@ -4452,8 +4451,7 @@ gen_method: {
                        break;
 
 
-               default: sprintf (logtext, "Unknown pseudo command: %d", iptr->opc);
-                        error();
+               default: error ("Unknown pseudo command: %d", iptr->opc);
        
    
 
index cb748286c41019387109507216244330b7205be4..c4c5b88903fe1739c375aa267db1be50993164c9 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Dieter Thuernbeck
 
-   $Id: inline.c 662 2003-11-21 18:06:25Z jowenn $
+   $Id: inline.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -400,12 +400,13 @@ inlining_methodinfo *inlining_analyse_method(methodinfo *m, int level, int gp, i
                                                cummethods++;
 
                                                if (verbose) {
+                                                       char logtext[MAXLOGTEXT];
                                                        sprintf(logtext, "Going to inline: ");
                                                        utf_sprint(logtext  +strlen(logtext), imi->class->name);
                                                        strcpy(logtext + strlen(logtext), ".");
                                                        utf_sprint(logtext + strlen(logtext), imi->name);
                                                        utf_sprint(logtext + strlen(logtext), imi->descriptor);
-                                                       dolog();
+                                                       dolog(logtext);
                                                }
                                                
                                                tmp = inlining_analyse_method(imi, level + 1, gp, firstlocal + m->maxlocals, maxstackdepth + m->maxstack);
index 69b3a885fea884731f3d8cd31d79acab1ca56341..aef4d5ae9170e5a95be72a81cfa02aeca6e2485c 100644 (file)
--- a/jit/jit.c
+++ b/jit/jit.c
@@ -27,7 +27,7 @@
    Authors: Andreas Krall
             Reinhard Grafl
 
-   $Id: jit.c 640 2003-11-15 12:14:05Z stefan $
+   $Id: jit.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -1357,12 +1357,13 @@ methodptr jit_compile(methodinfo *m)
        /* if there is no javacode print error message and return empty method    */
 
        if (!m->jcode) {
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "No code given for: ");
                utf_sprint(logtext+strlen(logtext), m->class->name);
                strcpy(logtext+strlen(logtext), ".");
                utf_sprint(logtext+strlen(logtext), m->name);
                utf_sprint(logtext+strlen(logtext), m->descriptor);
-               dolog();
+               dolog(logtext);
                intsRestore();                             /* enable interrupts again */
                return (methodptr) do_nothing_function;    /* return empty method     */
        }
@@ -1370,12 +1371,13 @@ methodptr jit_compile(methodinfo *m)
        /* print log message for compiled method */
 
        if (compileverbose) {
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "Compiling: ");
                utf_sprint(logtext+strlen(logtext), m->class->name);
                strcpy(logtext+strlen(logtext), ".");
                utf_sprint(logtext+strlen(logtext), m->name);
                utf_sprint(logtext+strlen(logtext), m->descriptor);
-               dolog();
+               dolog(logtext);
        }
 
 
index 15874fb0987ec181acb33f6d4566845bcd4b056c..e5866614c805d51a89c6fd34f424fcd189eed9c1 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Carolyn Oates
 
-   $Id: parse.c 669 2003-11-23 14:04:20Z edwin $
+   $Id: parse.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -89,18 +89,20 @@ void compiler_addinitclass(classinfo *c)
                        return;
                if (cl == NULL) {
                        if (runverbose) {
+                               char logtext[MAXLOGTEXT];
                                sprintf(logtext, "compiler_addinitclass: ");
                                utf_sprint(logtext+strlen(logtext), c->name);
-                               dolog();
+                               dolog(logtext);
                        }
                        chain_addlast(uninitializedclasses, c);
                        return;
                }
                if (c < cl) {
                        if (runverbose) {
+                               char logtext[MAXLOGTEXT];
                                sprintf(logtext, "compiler_addinitclass: ");
                                utf_sprint(logtext+strlen(logtext), c->name);
-                               dolog();
+                               dolog(logtext);
                        }
                        chain_addbefore(uninitializedclasses, c);
                        return;
index dff6deaead7707ff4e9bfb3eb2423e5296b9a00b..db00a756d89a253406549c8863e7c06b86377cd4 100644 (file)
@@ -28,7 +28,7 @@
    Authors: Andreas Krall
             Christian Thalinger
 
-   $Id: codegen.c 626 2003-11-13 14:30:08Z twisti $
+   $Id: codegen.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -3186,8 +3186,7 @@ gen_method: {
 
                                default:
                                        d = 0;
-                                       sprintf(logtext, "Unkown ICMD-Command: %d", iptr->opc);
-                                       error();
+                                       error("Unkown ICMD-Command: %d", iptr->opc);
                                }
 
                        /* d contains return type */
@@ -3486,8 +3485,7 @@ gen_method: {
                        store_reg_to_var_int(iptr->dst, s1);
                        break;
 
-               default: sprintf(logtext, "Unknown pseudo command: %d", iptr->opc);
-                        error();
+               default: error("Unknown pseudo command: %d", iptr->opc);
        } /* switch */
                
        } /* for instruction */
index 25cefc519231bc6fe3dab378dcb2b9e8e0980331..94313593bb288ac26c00721bfb869e5d20ebee4f 100644 (file)
--- a/loader.c
+++ b/loader.c
@@ -29,7 +29,7 @@
             Roman Obermaiser
             Mark Probst
 
-   $Id: loader.c 687 2003-12-04 22:29:54Z edwin $
+   $Id: loader.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -416,8 +416,7 @@ bool suck_start(utf *classname)
                }
        }
        if (verbose) {
-               sprintf(logtext, "Warning: Can not open class file '%s'", filename);
-               dolog();
+               dolog("Warning: Can not open class file '%s'", filename);
        }
 
        return false;
@@ -440,9 +439,8 @@ void suck_stop()
 
        if (classdata_left > 0) {
                /* surplus */           
-               sprintf(logtext, "There are %d access bytes at end of classfile",
+               dolog("There are %d access bytes at end of classfile",
                                classdata_left);
-               dolog();
        }
 
        /* free memory */
@@ -545,9 +543,8 @@ voidptr innerclass_getconstant (classinfo *c, u4 pos, u4 ctype)
 
        /* check type of constantpool entry */
        if (c->cptags[pos] != ctype) {
-               sprintf (logtext, "Type mismatch on constant: %d requested, %d here (innerclass_getconstant)",
+               error ("Type mismatch on constant: %d requested, %d here (innerclass_getconstant)",
                 (int) ctype, (int) c->cptags[pos] );
-               error();
                }
                
        return c->cpinfos[pos];
@@ -1038,9 +1035,8 @@ voidptr class_getconstant (classinfo *c, u4 pos, u4 ctype)
 
        if (c->cptags[pos] != ctype) {
                class_showconstantpool(c);
-               sprintf (logtext, "Type mismatch on constant: %d requested, %d here (class_getconstant)",
+               error ("Type mismatch on constant: %d requested, %d here (class_getconstant)",
                 (int) ctype, (int) c->cptags[pos] );
-               error();
                }
                
        return c->cpinfos[pos];
@@ -1280,8 +1276,7 @@ static void class_loadcpool (classinfo *c)
                                }
                                                                                
                        default:
-                               sprintf (logtext, "Unkown constant type: %d",(int) t);
-                               error ();
+                               error ("Unkown constant type: %d",(int) t);
                
                        }  /* end switch */
                        
@@ -1416,9 +1411,10 @@ static int class_load(classinfo *c)
 
        /* output for debugging purposes */
        if (loadverbose) {              
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "Loading class: ");
                utf_sprint(logtext+strlen(logtext), c->name);
-               dolog();
+               dolog(logtext);
        }
        
        /* load classdata, throw exception on error */
@@ -1434,9 +1430,8 @@ static int class_load(classinfo *c)
        mi = suck_u2(); 
        ma = suck_u2();
        if (ma != MAJOR_VERSION && (ma != MAJOR_VERSION+1 || mi != 0)) {
-               sprintf (logtext, "File version %d.%d is not supported",
+               error ("File version %d.%d is not supported",
                                 (int) ma, (int) mi);
-               error();
                }
 
        class_loadcpool (c);
@@ -1520,9 +1515,10 @@ static s4 class_highestinterface (classinfo *c)
        s4 i;
        
        if ( ! (c->flags & ACC_INTERFACE) ) {
+               char logtext[MAXLOGTEXT];
                sprintf (logtext, "Interface-methods count requested for non-interface:  ");
        utf_sprint (logtext+strlen(logtext), c->name);
-       error();
+       error(logtext);
        }
     
     h = c->index;
@@ -1845,9 +1841,10 @@ void class_link(classinfo *c)
 
 
        if (linkverbose) {
+               char logtext[MAXLOGTEXT];
                sprintf (logtext, "Linking Class: ");
                utf_sprint (logtext+strlen(logtext), c->name );
-               dolog ();
+               dolog (logtext);
        }
 
        /* compute vftbl length */
@@ -2379,10 +2376,11 @@ void class_init(classinfo *c)
         m = class_findmethod (c, utf_clinit, utf_fidesc);
         if (!m) {
                 if (initverbose) {
+                                               char logtext[MAXLOGTEXT];
                         sprintf (logtext, "Class ");
                         utf_sprint (logtext+strlen(logtext), c->name);
                         sprintf (logtext+strlen(logtext), " has no initializer");
-                        dolog ();
+                        dolog (logtext);
                         }
 /*              goto callinitialize;*/
                 return;
@@ -2392,9 +2390,10 @@ void class_init(classinfo *c)
                 panic ("Class initializer is not static!");
 
         if (initverbose) {
+                               char logtext[MAXLOGTEXT];
                 sprintf (logtext, "Starting initializer for class: ");
                 utf_sprint (logtext+strlen(logtext), c->name);
-                dolog ();
+                dolog (logtext);
         }
 
 #ifdef USE_THREADS
@@ -2419,9 +2418,10 @@ void class_init(classinfo *c)
                 }
 
         if (initverbose) {
+                               char logtext[MAXLOGTEXT];
                 sprintf (logtext, "Finished initializer for class: ");
                 utf_sprint (logtext+strlen(logtext), c->name);
-                dolog ();
+                dolog (logtext);
         }
         if (c->name == utf_systemclass) {
                 /* class java.lang.System requires explicit initialization */
diff --git a/main.c b/main.c
index 46c7c023ff4be185a201d44e82dc236909de7045..98649a13f5ec642f8496a1047043ae751e529fea 100644 (file)
--- a/main.c
+++ b/main.c
@@ -37,7 +37,7 @@
      - Calling the class loader
      - Running the main method
 
-   $Id: main.c 687 2003-12-04 22:29:54Z edwin $
+   $Id: main.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -255,19 +255,20 @@ static void print_times()
 {
        long int totaltime = getcputime();
        long int runtime = totaltime - loadingtime - compilingtime;
+       char logtext[MAXLOGTEXT];
 
        sprintf(logtext, "Time for loading classes: %ld secs, %ld millis",
                        loadingtime / 1000000, (loadingtime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Time for compiling code:  %ld secs, %ld millis",
                        compilingtime / 1000000, (compilingtime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Time for running program: %ld secs, %ld millis",
                        runtime / 1000000, (runtime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Total time: %ld secs, %ld millis",
                        totaltime / 1000000, (totaltime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
 }
 
 
@@ -283,126 +284,128 @@ static void print_times()
 
 static void print_stats()
 {
+       char logtext[MAXLOGTEXT];
+
        sprintf(logtext, "Number of JitCompiler Calls: %d", count_jit_calls);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of compiled Methods: %d", count_methods);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of max basic blocks per method: %d", count_max_basic_blocks);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of compiled basic blocks: %d", count_basic_blocks);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of max JavaVM-Instructions per method: %d", count_max_javainstr);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of compiled JavaVM-Instructions: %d", count_javainstr);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of compiled JavaVM-Instructions:   %d(%d)", count_javacodesize,
                        count_javacodesize - count_methods * 18);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of compiled Exception Tables:      %d", count_javaexcsize);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Value of extended instruction set var:  %d", has_ext_instr_set);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Machine-Instructions: %d", count_code_len >> 2);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Spills: %d", count_spills);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Activ    Pseudocommands: %5d", count_pcmd_activ);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Drop     Pseudocommands: %5d", count_pcmd_drop);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Const    Pseudocommands: %5d (zero:%5d)", count_pcmd_load, count_pcmd_zero);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of ConstAlu Pseudocommands: %5d (cmp: %5d, store:%5d)", count_pcmd_const_alu, count_pcmd_const_bra, count_pcmd_const_store);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Move     Pseudocommands: %5d", count_pcmd_move);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Load     Pseudocommands: %5d", count_load_instruction);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Store    Pseudocommands: %5d (combined: %5d)", count_pcmd_store, count_pcmd_store - count_pcmd_store_comb);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of OP       Pseudocommands: %5d", count_pcmd_op);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of DUP      Pseudocommands: %5d", count_dup_instruction);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Mem      Pseudocommands: %5d", count_pcmd_mem);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Method   Pseudocommands: %5d", count_pcmd_met);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Branch   Pseudocommands: %5d (rets:%5d, Xrets: %5d)",
                        count_pcmd_bra, count_pcmd_return, count_pcmd_returnx);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Table    Pseudocommands: %5d", count_pcmd_table);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Useful   Pseudocommands: %5d", count_pcmd_table +
                        count_pcmd_bra + count_pcmd_load + count_pcmd_mem + count_pcmd_op);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Null Pointer Checks:     %5d", count_check_null);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Array Bound Checks:      %5d", count_check_bound);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Try-Blocks: %d", count_tryblocks);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Maximal count of stack elements:   %d", count_max_new_stack);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Upper bound of max stack elements: %d", count_upper_bound_new_stack);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of stack sizes at block boundary");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    0    1    2    3    4    5    6    7    8    9    >=10");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_block_stack[0],
                        count_block_stack[1], count_block_stack[2], count_block_stack[3], count_block_stack[4],
                        count_block_stack[5], count_block_stack[6], count_block_stack[7], count_block_stack[8],
                        count_block_stack[9], count_block_stack[10]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of store stack depth");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    0    1    2    3    4    5    6    7    8    9    >=10");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_store_depth[0],
                        count_store_depth[1], count_store_depth[2], count_store_depth[3], count_store_depth[4],
                        count_store_depth[5], count_store_depth[6], count_store_depth[7], count_store_depth[8],
                        count_store_depth[9], count_store_depth[10]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of store creator chains first part");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    0    1    2    3    4    5    6    7    8    9  ");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_store_length[0],
                        count_store_length[1], count_store_length[2], count_store_length[3], count_store_length[4],
                        count_store_length[5], count_store_length[6], count_store_length[7], count_store_length[8],
                        count_store_length[9]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of store creator chains second part");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "   10   11   12   13   14   15   16   17   18   19  >=20");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_store_length[10],
                        count_store_length[11], count_store_length[12], count_store_length[13], count_store_length[14],
                        count_store_length[15], count_store_length[16], count_store_length[17], count_store_length[18],
                        count_store_length[19], count_store_length[20]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of analysis iterations");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    1    2    3    4    >=5");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d", count_analyse_iterations[0], count_analyse_iterations[1],
                        count_analyse_iterations[2], count_analyse_iterations[3], count_analyse_iterations[4]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of basic blocks per method");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, " <= 5 <=10 <=15 <=20 <=30 <=40 <=50 <=75  >75");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_method_bb_distribution[0],
                        count_method_bb_distribution[1], count_method_bb_distribution[2], count_method_bb_distribution[3],
                        count_method_bb_distribution[4], count_method_bb_distribution[5], count_method_bb_distribution[6],
                        count_method_bb_distribution[7], count_method_bb_distribution[8]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of basic block sizes");
-       dolog();
+       dolog(logtext);
        sprintf(logtext,
                         "  0    1    2    3    4   5   6   7   8   9 <13 <15 <17 <19 <21 <26 <31 >30");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%3d%5d%5d%5d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d",
                        count_block_size_distribution[0], count_block_size_distribution[1], count_block_size_distribution[2],
                        count_block_size_distribution[3], count_block_size_distribution[4], count_block_size_distribution[5],
@@ -410,39 +413,39 @@ static void print_stats()
                        count_block_size_distribution[9], count_block_size_distribution[10], count_block_size_distribution[11],
                        count_block_size_distribution[12], count_block_size_distribution[13], count_block_size_distribution[14],
                        count_block_size_distribution[15], count_block_size_distribution[16], count_block_size_distribution[17]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Code Area (Kb):  %10.3f", (float) count_code_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of data Area (Kb):  %10.3f", (float) count_data_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Class Infos (Kb):%10.3f", (float) (count_class_infos) / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Const Pool (Kb): %10.3f", (float) (count_const_pool_len + count_utf_len) / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Vftbl (Kb):      %10.3f", (float) count_vftbl_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of comp stub (Kb):  %10.3f", (float) count_cstub_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of native stub (Kb):%10.3f", (float) count_nstub_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Utf (Kb):        %10.3f", (float) count_utf_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of VMCode (Kb):     %10.3f(%d)", (float) count_vmcode_len / 1024,
                        count_vmcode_len - 18 * count_all_methods);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of ExTable (Kb):    %10.3f", (float) count_extable_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of class loads:   %d", count_class_loads);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of class inits:   %d", count_class_inits);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of loaded Methods: %d\n\n", count_all_methods);
-       dolog();
+       dolog(logtext);
 
        sprintf(logtext, "Calls of utf_new: %22d", count_utf_new);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Calls of utf_new (element found): %6d\n\n", count_utf_new_found);
-       dolog();
+       dolog(logtext);
 }
 
 
@@ -897,8 +900,7 @@ void cacao_shutdown(s4 status)
                if (getcompilingtime)
                        print_times();
                mem_usagelog(0);
-               sprintf(logtext, "Exit status: %d\n", (int) status);
-               dolog();
+               dolog("Exit status: %d\n", (int) status);
        }
 
        exit(status);
index 4165ae41be379056acd27534df8b5d457629f3b6..06c1d2a2c6df59d4d36aba02b6dcf7ac90c3f221 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Stefan Ring
 
-   $Id: boehm.c 662 2003-11-21 18:06:25Z jowenn $
+   $Id: boehm.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -161,11 +161,9 @@ void gc_init()
 
 void gc_call()
 {
-       if (collectverbose) {
-               sprintf(logtext, "Garbage Collection:  previous/now = %d / %d ",
+       if (collectverbose)
+               dolog("Garbage Collection:  previous/now = %d / %d ",
                                0, 0);
-               dolog();
-       }
 
        GC_gcollect();
 }
index d8826e01a55e627d2684b4fd6b5e345429673a7c..1a3ae3401b562093ef9b32cf89f9335771efadc2 100644 (file)
@@ -65,9 +65,10 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
                   (m->descriptor == create_methodsig(this->parameterTypes,"V"))))*/
        {
                 if (verbose) {
+                                               char logtext[MAXLOGTEXT];
                         sprintf(logtext, "Warning: class has no instance-initializer of specified type: ");
                         utf_sprint(logtext + strlen(logtext), ((struct classinfo*)clazz)->name);
-                        dolog();
+                        dolog(logtext);
                        utf_display( create_methodsig(this->parameterTypes,"V"));
                        printf("\n");
                        class_showconstantpool(clazz);
index 86ee733617c517134ff809b4a4c1b94ed8ed8053..35c08bc84bd1c96543a003879cf7acad323ffac2 100644 (file)
--- a/native.c
+++ b/native.c
@@ -31,7 +31,7 @@
    The .hh files created with the header file generator are all
    included here as are the C functions implementing these methods.
 
-   $Id: native.c 682 2003-12-01 15:33:30Z jowenn $
+   $Id: native.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -731,9 +731,10 @@ java_objectheader *native_new_and_init(classinfo *c)
                                                      
        if (!m) {                                       /* initializer not found  */
                if (verbose) {
+                       char logtext[MAXLOGTEXT];
                        sprintf(logtext, "Warning: class has no instance-initializer: ");
                        utf_sprint(logtext + strlen(logtext), c->name);
-                       dolog();
+                       dolog(logtext);
                }
                return o;
        }
@@ -761,9 +762,10 @@ java_objectheader *native_new_and_init_string(classinfo *c, java_lang_String *s)
                                                      
        if (!m) {                                       /* initializer not found  */
                if (verbose) {
+                       char logtext[MAXLOGTEXT];
                        sprintf(logtext, "Warning: class has no instance-initializer: ");
                        utf_sprint(logtext + strlen(logtext), c->name);
-                       dolog();
+                       dolog(logtext);
                }
                return o;
        }
index 5f733b0b9ddf3d6a20969213e2f3c450fb9e7783..5f5019b7bb2019ab6729e45d1b81fd779c18fa15 100644 (file)
@@ -37,7 +37,7 @@
      - Calling the class loader
      - Running the main method
 
-   $Id: cacao.c 687 2003-12-04 22:29:54Z edwin $
+   $Id: cacao.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -255,19 +255,20 @@ static void print_times()
 {
        long int totaltime = getcputime();
        long int runtime = totaltime - loadingtime - compilingtime;
+       char logtext[MAXLOGTEXT];
 
        sprintf(logtext, "Time for loading classes: %ld secs, %ld millis",
                        loadingtime / 1000000, (loadingtime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Time for compiling code:  %ld secs, %ld millis",
                        compilingtime / 1000000, (compilingtime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Time for running program: %ld secs, %ld millis",
                        runtime / 1000000, (runtime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Total time: %ld secs, %ld millis",
                        totaltime / 1000000, (totaltime % 1000000) / 1000);
-       dolog();
+       dolog(logtext);
 }
 
 
@@ -283,126 +284,128 @@ static void print_times()
 
 static void print_stats()
 {
+       char logtext[MAXLOGTEXT];
+
        sprintf(logtext, "Number of JitCompiler Calls: %d", count_jit_calls);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of compiled Methods: %d", count_methods);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of max basic blocks per method: %d", count_max_basic_blocks);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of compiled basic blocks: %d", count_basic_blocks);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of max JavaVM-Instructions per method: %d", count_max_javainstr);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of compiled JavaVM-Instructions: %d", count_javainstr);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of compiled JavaVM-Instructions:   %d(%d)", count_javacodesize,
                        count_javacodesize - count_methods * 18);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of compiled Exception Tables:      %d", count_javaexcsize);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Value of extended instruction set var:  %d", has_ext_instr_set);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Machine-Instructions: %d", count_code_len >> 2);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Spills: %d", count_spills);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Activ    Pseudocommands: %5d", count_pcmd_activ);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Drop     Pseudocommands: %5d", count_pcmd_drop);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Const    Pseudocommands: %5d (zero:%5d)", count_pcmd_load, count_pcmd_zero);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of ConstAlu Pseudocommands: %5d (cmp: %5d, store:%5d)", count_pcmd_const_alu, count_pcmd_const_bra, count_pcmd_const_store);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Move     Pseudocommands: %5d", count_pcmd_move);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Load     Pseudocommands: %5d", count_load_instruction);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Store    Pseudocommands: %5d (combined: %5d)", count_pcmd_store, count_pcmd_store - count_pcmd_store_comb);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of OP       Pseudocommands: %5d", count_pcmd_op);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of DUP      Pseudocommands: %5d", count_dup_instruction);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Mem      Pseudocommands: %5d", count_pcmd_mem);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Method   Pseudocommands: %5d", count_pcmd_met);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Branch   Pseudocommands: %5d (rets:%5d, Xrets: %5d)",
                        count_pcmd_bra, count_pcmd_return, count_pcmd_returnx);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Table    Pseudocommands: %5d", count_pcmd_table);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Useful   Pseudocommands: %5d", count_pcmd_table +
                        count_pcmd_bra + count_pcmd_load + count_pcmd_mem + count_pcmd_op);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Null Pointer Checks:     %5d", count_check_null);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Array Bound Checks:      %5d", count_check_bound);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of Try-Blocks: %d", count_tryblocks);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Maximal count of stack elements:   %d", count_max_new_stack);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Upper bound of max stack elements: %d", count_upper_bound_new_stack);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of stack sizes at block boundary");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    0    1    2    3    4    5    6    7    8    9    >=10");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_block_stack[0],
                        count_block_stack[1], count_block_stack[2], count_block_stack[3], count_block_stack[4],
                        count_block_stack[5], count_block_stack[6], count_block_stack[7], count_block_stack[8],
                        count_block_stack[9], count_block_stack[10]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of store stack depth");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    0    1    2    3    4    5    6    7    8    9    >=10");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_store_depth[0],
                        count_store_depth[1], count_store_depth[2], count_store_depth[3], count_store_depth[4],
                        count_store_depth[5], count_store_depth[6], count_store_depth[7], count_store_depth[8],
                        count_store_depth[9], count_store_depth[10]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of store creator chains first part");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    0    1    2    3    4    5    6    7    8    9  ");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_store_length[0],
                        count_store_length[1], count_store_length[2], count_store_length[3], count_store_length[4],
                        count_store_length[5], count_store_length[6], count_store_length[7], count_store_length[8],
                        count_store_length[9]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of store creator chains second part");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "   10   11   12   13   14   15   16   17   18   19  >=20");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_store_length[10],
                        count_store_length[11], count_store_length[12], count_store_length[13], count_store_length[14],
                        count_store_length[15], count_store_length[16], count_store_length[17], count_store_length[18],
                        count_store_length[19], count_store_length[20]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of analysis iterations");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "    1    2    3    4    >=5");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d", count_analyse_iterations[0], count_analyse_iterations[1],
                        count_analyse_iterations[2], count_analyse_iterations[3], count_analyse_iterations[4]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of basic blocks per method");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, " <= 5 <=10 <=15 <=20 <=30 <=40 <=50 <=75  >75");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%5d%5d%5d%5d%5d%5d%5d%5d%5d", count_method_bb_distribution[0],
                        count_method_bb_distribution[1], count_method_bb_distribution[2], count_method_bb_distribution[3],
                        count_method_bb_distribution[4], count_method_bb_distribution[5], count_method_bb_distribution[6],
                        count_method_bb_distribution[7], count_method_bb_distribution[8]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Distribution of basic block sizes");
-       dolog();
+       dolog(logtext);
        sprintf(logtext,
                         "  0    1    2    3    4   5   6   7   8   9 <13 <15 <17 <19 <21 <26 <31 >30");
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "%3d%5d%5d%5d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d",
                        count_block_size_distribution[0], count_block_size_distribution[1], count_block_size_distribution[2],
                        count_block_size_distribution[3], count_block_size_distribution[4], count_block_size_distribution[5],
@@ -410,39 +413,39 @@ static void print_stats()
                        count_block_size_distribution[9], count_block_size_distribution[10], count_block_size_distribution[11],
                        count_block_size_distribution[12], count_block_size_distribution[13], count_block_size_distribution[14],
                        count_block_size_distribution[15], count_block_size_distribution[16], count_block_size_distribution[17]);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Code Area (Kb):  %10.3f", (float) count_code_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of data Area (Kb):  %10.3f", (float) count_data_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Class Infos (Kb):%10.3f", (float) (count_class_infos) / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Const Pool (Kb): %10.3f", (float) (count_const_pool_len + count_utf_len) / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Vftbl (Kb):      %10.3f", (float) count_vftbl_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of comp stub (Kb):  %10.3f", (float) count_cstub_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of native stub (Kb):%10.3f", (float) count_nstub_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of Utf (Kb):        %10.3f", (float) count_utf_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of VMCode (Kb):     %10.3f(%d)", (float) count_vmcode_len / 1024,
                        count_vmcode_len - 18 * count_all_methods);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Size of ExTable (Kb):    %10.3f", (float) count_extable_len / 1024);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of class loads:   %d", count_class_loads);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of class inits:   %d", count_class_inits);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Number of loaded Methods: %d\n\n", count_all_methods);
-       dolog();
+       dolog(logtext);
 
        sprintf(logtext, "Calls of utf_new: %22d", count_utf_new);
-       dolog();
+       dolog(logtext);
        sprintf(logtext, "Calls of utf_new (element found): %6d\n\n", count_utf_new_found);
-       dolog();
+       dolog(logtext);
 }
 
 
@@ -897,8 +900,7 @@ void cacao_shutdown(s4 status)
                if (getcompilingtime)
                        print_times();
                mem_usagelog(0);
-               sprintf(logtext, "Exit status: %d\n", (int) status);
-               dolog();
+               dolog("Exit status: %d\n", (int) status);
        }
 
        exit(status);
index 541cf0081b897e099bd96631fb5e3dec9ee87a22..6320ac10b6a43420402b992ee9087afd555e035f 100644 (file)
@@ -29,7 +29,7 @@
    Changes: Mark Probst
             Philipp Tomsich
 
-   $Id: headers.c 685 2003-12-04 01:25:54Z jowenn $
+   $Id: headers.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -62,8 +62,10 @@ void throw_classnotfoundexception()
 
 void throw_classnotfoundexception2(utf* classname) 
 { 
+       /* [stefan] code was useless
        sprintf (logtext, "Loading class: ");
-        utf_sprint (logtext+strlen(logtext), classname);
+       utf_sprint (logtext+strlen(logtext), classname);
+       */
        panic("******class not found"); 
 }
 
index 4165ae41be379056acd27534df8b5d457629f3b6..06c1d2a2c6df59d4d36aba02b6dcf7ac90c3f221 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Stefan Ring
 
-   $Id: boehm.c 662 2003-11-21 18:06:25Z jowenn $
+   $Id: boehm.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -161,11 +161,9 @@ void gc_init()
 
 void gc_call()
 {
-       if (collectverbose) {
-               sprintf(logtext, "Garbage Collection:  previous/now = %d / %d ",
+       if (collectverbose)
+               dolog("Garbage Collection:  previous/now = %d / %d ",
                                0, 0);
-               dolog();
-       }
 
        GC_gcollect();
 }
index 6bc745a0112e4e7f9009fee5b98be1848513e985..4334496b8e50c935f1510c91c58a85fff4242fc7 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: memory.c 662 2003-11-21 18:06:25Z jowenn $
+   $Id: memory.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -273,6 +273,7 @@ static void mem_characterlog(unsigned char *m, int len)
 {
 #      define LINESIZE 16
        int z, i;
+       char logtext[MAXLOGTEXT];
        
        for (z = 0; z < len; z += LINESIZE) {
                sprintf(logtext, "   ");
@@ -290,7 +291,7 @@ static void mem_characterlog(unsigned char *m, int len)
                                        "%c", (m[i] >= ' ' && m[i] <= 127) ? m[i] : '.');
                }
                        
-               dolog();
+               dolog(logtext);
        }
 }
 
@@ -448,17 +449,15 @@ void dump_release(long int size)
 void mem_usagelog (int givewarnings)
 {
        if ((memoryusage!=0) && givewarnings) {
-               sprintf (logtext, "Allocated memory not returned: %d",
+               dolog ("Allocated memory not returned: %d",
                                 (int)memoryusage);
-               dolog();
 
 #ifdef DEBUG
                { 
                        memblock *mb = firstmemblock;
                        while (mb) {
-                               sprintf (logtext, "   Memory block size: %d", 
+                               dolog ("   Memory block size: %d", 
                                                 (int)(mb->length) );
-                               dolog();
                                mem_characterlog ( ((unsigned char*)mb) + BLOCKOFFSET, mb->length);
                                mb = mb->next;
                        }
@@ -468,15 +467,13 @@ void mem_usagelog (int givewarnings)
        }
 
        if ((dumpsize!=0) && givewarnings) {
-               sprintf (logtext, "Dump memory not returned: %d",(int)dumpsize);
-               dolog();
+               dolog ("Dump memory not returned: %d",(int)dumpsize);
        }
 
 
-       sprintf(logtext, "Random/Dump - memory usage: %dK/%dK", 
+       dolog("Random/Dump - memory usage: %dK/%dK", 
                        (int)((maxmemusage+1023)/1024), 
                        (int)((maxdumpsize+1023)/1024) );
-       dolog();
        
 }
 
index 86ee733617c517134ff809b4a4c1b94ed8ed8053..35c08bc84bd1c96543a003879cf7acad323ffac2 100644 (file)
@@ -31,7 +31,7 @@
    The .hh files created with the header file generator are all
    included here as are the C functions implementing these methods.
 
-   $Id: native.c 682 2003-12-01 15:33:30Z jowenn $
+   $Id: native.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -731,9 +731,10 @@ java_objectheader *native_new_and_init(classinfo *c)
                                                      
        if (!m) {                                       /* initializer not found  */
                if (verbose) {
+                       char logtext[MAXLOGTEXT];
                        sprintf(logtext, "Warning: class has no instance-initializer: ");
                        utf_sprint(logtext + strlen(logtext), c->name);
-                       dolog();
+                       dolog(logtext);
                }
                return o;
        }
@@ -761,9 +762,10 @@ java_objectheader *native_new_and_init_string(classinfo *c, java_lang_String *s)
                                                      
        if (!m) {                                       /* initializer not found  */
                if (verbose) {
+                       char logtext[MAXLOGTEXT];
                        sprintf(logtext, "Warning: class has no instance-initializer: ");
                        utf_sprint(logtext + strlen(logtext), c->name);
-                       dolog();
+                       dolog(logtext);
                }
                return o;
        }
index d8826e01a55e627d2684b4fd6b5e345429673a7c..1a3ae3401b562093ef9b32cf89f9335771efadc2 100644 (file)
@@ -65,9 +65,10 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
                   (m->descriptor == create_methodsig(this->parameterTypes,"V"))))*/
        {
                 if (verbose) {
+                                               char logtext[MAXLOGTEXT];
                         sprintf(logtext, "Warning: class has no instance-initializer of specified type: ");
                         utf_sprint(logtext + strlen(logtext), ((struct classinfo*)clazz)->name);
-                        dolog();
+                        dolog(logtext);
                        utf_display( create_methodsig(this->parameterTypes,"V"));
                        printf("\n");
                        class_showconstantpool(clazz);
index a866f4b800065aba5ade523f26cfe66721a3c14f..1610b83ef98cbfecb08dfb2f9ea6b31055d3a3b5 100644 (file)
@@ -34,7 +34,7 @@
    calls instead of machine instructions, using the C calling
    convention.
 
-   $Id: builtin.c 686 2003-12-04 11:35:11Z stefan $
+   $Id: builtin.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -337,6 +337,7 @@ s4 builtin_arrayinstanceof(java_objectheader *obj,arraydescriptor *desc)
 java_objectheader *builtin_throw_exception(java_objectheader *local_exceptionptr)
 {
        if (verbose) {
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "Builtin exception thrown: ");
                if (local_exceptionptr)
                        utf_sprint(logtext + strlen(logtext), local_exceptionptr->vftbl->class->name);
@@ -353,7 +354,7 @@ java_objectheader *builtin_throw_exception(java_objectheader *local_exceptionptr
                        if (!proto_java_lang_ThreadDeath) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ThreadDeath==0");
                        if (!proto_java_lang_ThreadDeath) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ThreadDeath==0");
                        }
-               dolog();
+               dolog(logtext);
        }
        exceptionptr = local_exceptionptr;
        return local_exceptionptr;
@@ -796,6 +797,7 @@ void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
 {
 
        int i;
+       char logtext[MAXLOGTEXT];
        for (i = 0; i < methodindent; i++)
                logtext[i] = '\t';
        sprintf(logtext + methodindent, "called: ");
@@ -910,7 +912,7 @@ void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
 #endif
        }
        sprintf (logtext+strlen(logtext), ")");
-       dolog ();
+       dolog (logtext);
 
        methodindent++;
 }
@@ -919,13 +921,14 @@ void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
 
 void builtin_displaymethodstart(methodinfo *method)
 {
+       char logtext[MAXLOGTEXT];
        sprintf(logtext, "                                                                                              ");
        sprintf(logtext + methodindent, "called: ");
        utf_sprint(logtext + strlen(logtext), method->class->name);
        sprintf(logtext + strlen(logtext), ".");
        utf_sprint(logtext + strlen(logtext), method->name);
        utf_sprint(logtext + strlen(logtext), method->descriptor);
-       dolog();
+       dolog(logtext);
        methodindent++;
 }
 
@@ -933,6 +936,7 @@ void builtin_displaymethodstart(methodinfo *method)
 void builtin_displaymethodstop(methodinfo *method, s8 l, double d, float f)
 {
        int i;
+       char logtext[MAXLOGTEXT];
        for (i = 0; i < methodindent; i++)
                logtext[i] = '\t';
        methodindent--;
@@ -967,13 +971,14 @@ void builtin_displaymethodstop(methodinfo *method, s8 l, double d, float f)
                sprintf(logtext + strlen(logtext), "->%g", d);
                break;
        }
-       dolog();
+       dolog(logtext);
 }
 
 
 void builtin_displaymethodexception(methodinfo *method)
 {
        int i;
+       char logtext[MAXLOGTEXT];
        for (i = 0; i < methodindent; i++)
                logtext[i] = '\t';
        sprintf(logtext + methodindent, "exception abort: ");
@@ -981,7 +986,7 @@ void builtin_displaymethodexception(methodinfo *method)
        sprintf(logtext + strlen(logtext), ".");
        utf_sprint(logtext + strlen(logtext), method->name);
        utf_sprint(logtext + strlen(logtext), method->descriptor);
-       dolog();
+       dolog(logtext);
 }
 
 
index 21bf294baf0bed636725075abdaef827eabafad5..a02c8e2ac1bedb5522dbb9d6e0b257238d7f339f 100644 (file)
@@ -28,7 +28,7 @@
    Authors: Andreas Krall
             Christian Thalinger
 
-   $Id: codegen.c 688 2003-12-04 23:50:25Z jowenn $
+   $Id: codegen.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -4088,8 +4088,7 @@ gen_method: {
 
                                default:
                                        d = 0;
-                                       sprintf(logtext, "Unkown ICMD-Command: %d", iptr->opc);
-                                       error();
+                                       error("Unkown ICMD-Command: %d", iptr->opc);
                                }
 
                        /* d contains return type */
@@ -4452,8 +4451,7 @@ gen_method: {
                        break;
 
 
-               default: sprintf (logtext, "Unknown pseudo command: %d", iptr->opc);
-                        error();
+               default: error ("Unknown pseudo command: %d", iptr->opc);
        
    
 
index cb748286c41019387109507216244330b7205be4..c4c5b88903fe1739c375aa267db1be50993164c9 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Dieter Thuernbeck
 
-   $Id: inline.c 662 2003-11-21 18:06:25Z jowenn $
+   $Id: inline.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -400,12 +400,13 @@ inlining_methodinfo *inlining_analyse_method(methodinfo *m, int level, int gp, i
                                                cummethods++;
 
                                                if (verbose) {
+                                                       char logtext[MAXLOGTEXT];
                                                        sprintf(logtext, "Going to inline: ");
                                                        utf_sprint(logtext  +strlen(logtext), imi->class->name);
                                                        strcpy(logtext + strlen(logtext), ".");
                                                        utf_sprint(logtext + strlen(logtext), imi->name);
                                                        utf_sprint(logtext + strlen(logtext), imi->descriptor);
-                                                       dolog();
+                                                       dolog(logtext);
                                                }
                                                
                                                tmp = inlining_analyse_method(imi, level + 1, gp, firstlocal + m->maxlocals, maxstackdepth + m->maxstack);
index 69b3a885fea884731f3d8cd31d79acab1ca56341..aef4d5ae9170e5a95be72a81cfa02aeca6e2485c 100644 (file)
@@ -27,7 +27,7 @@
    Authors: Andreas Krall
             Reinhard Grafl
 
-   $Id: jit.c 640 2003-11-15 12:14:05Z stefan $
+   $Id: jit.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -1357,12 +1357,13 @@ methodptr jit_compile(methodinfo *m)
        /* if there is no javacode print error message and return empty method    */
 
        if (!m->jcode) {
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "No code given for: ");
                utf_sprint(logtext+strlen(logtext), m->class->name);
                strcpy(logtext+strlen(logtext), ".");
                utf_sprint(logtext+strlen(logtext), m->name);
                utf_sprint(logtext+strlen(logtext), m->descriptor);
-               dolog();
+               dolog(logtext);
                intsRestore();                             /* enable interrupts again */
                return (methodptr) do_nothing_function;    /* return empty method     */
        }
@@ -1370,12 +1371,13 @@ methodptr jit_compile(methodinfo *m)
        /* print log message for compiled method */
 
        if (compileverbose) {
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "Compiling: ");
                utf_sprint(logtext+strlen(logtext), m->class->name);
                strcpy(logtext+strlen(logtext), ".");
                utf_sprint(logtext+strlen(logtext), m->name);
                utf_sprint(logtext+strlen(logtext), m->descriptor);
-               dolog();
+               dolog(logtext);
        }
 
 
index 15874fb0987ec181acb33f6d4566845bcd4b056c..e5866614c805d51a89c6fd34f424fcd189eed9c1 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Carolyn Oates
 
-   $Id: parse.c 669 2003-11-23 14:04:20Z edwin $
+   $Id: parse.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -89,18 +89,20 @@ void compiler_addinitclass(classinfo *c)
                        return;
                if (cl == NULL) {
                        if (runverbose) {
+                               char logtext[MAXLOGTEXT];
                                sprintf(logtext, "compiler_addinitclass: ");
                                utf_sprint(logtext+strlen(logtext), c->name);
-                               dolog();
+                               dolog(logtext);
                        }
                        chain_addlast(uninitializedclasses, c);
                        return;
                }
                if (c < cl) {
                        if (runverbose) {
+                               char logtext[MAXLOGTEXT];
                                sprintf(logtext, "compiler_addinitclass: ");
                                utf_sprint(logtext+strlen(logtext), c->name);
-                               dolog();
+                               dolog(logtext);
                        }
                        chain_addbefore(uninitializedclasses, c);
                        return;
index dff6deaead7707ff4e9bfb3eb2423e5296b9a00b..db00a756d89a253406549c8863e7c06b86377cd4 100644 (file)
@@ -28,7 +28,7 @@
    Authors: Andreas Krall
             Christian Thalinger
 
-   $Id: codegen.c 626 2003-11-13 14:30:08Z twisti $
+   $Id: codegen.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -3186,8 +3186,7 @@ gen_method: {
 
                                default:
                                        d = 0;
-                                       sprintf(logtext, "Unkown ICMD-Command: %d", iptr->opc);
-                                       error();
+                                       error("Unkown ICMD-Command: %d", iptr->opc);
                                }
 
                        /* d contains return type */
@@ -3486,8 +3485,7 @@ gen_method: {
                        store_reg_to_var_int(iptr->dst, s1);
                        break;
 
-               default: sprintf(logtext, "Unknown pseudo command: %d", iptr->opc);
-                        error();
+               default: error("Unknown pseudo command: %d", iptr->opc);
        } /* switch */
                
        } /* for instruction */
index 25cefc519231bc6fe3dab378dcb2b9e8e0980331..94313593bb288ac26c00721bfb869e5d20ebee4f 100644 (file)
@@ -29,7 +29,7 @@
             Roman Obermaiser
             Mark Probst
 
-   $Id: loader.c 687 2003-12-04 22:29:54Z edwin $
+   $Id: loader.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -416,8 +416,7 @@ bool suck_start(utf *classname)
                }
        }
        if (verbose) {
-               sprintf(logtext, "Warning: Can not open class file '%s'", filename);
-               dolog();
+               dolog("Warning: Can not open class file '%s'", filename);
        }
 
        return false;
@@ -440,9 +439,8 @@ void suck_stop()
 
        if (classdata_left > 0) {
                /* surplus */           
-               sprintf(logtext, "There are %d access bytes at end of classfile",
+               dolog("There are %d access bytes at end of classfile",
                                classdata_left);
-               dolog();
        }
 
        /* free memory */
@@ -545,9 +543,8 @@ voidptr innerclass_getconstant (classinfo *c, u4 pos, u4 ctype)
 
        /* check type of constantpool entry */
        if (c->cptags[pos] != ctype) {
-               sprintf (logtext, "Type mismatch on constant: %d requested, %d here (innerclass_getconstant)",
+               error ("Type mismatch on constant: %d requested, %d here (innerclass_getconstant)",
                 (int) ctype, (int) c->cptags[pos] );
-               error();
                }
                
        return c->cpinfos[pos];
@@ -1038,9 +1035,8 @@ voidptr class_getconstant (classinfo *c, u4 pos, u4 ctype)
 
        if (c->cptags[pos] != ctype) {
                class_showconstantpool(c);
-               sprintf (logtext, "Type mismatch on constant: %d requested, %d here (class_getconstant)",
+               error ("Type mismatch on constant: %d requested, %d here (class_getconstant)",
                 (int) ctype, (int) c->cptags[pos] );
-               error();
                }
                
        return c->cpinfos[pos];
@@ -1280,8 +1276,7 @@ static void class_loadcpool (classinfo *c)
                                }
                                                                                
                        default:
-                               sprintf (logtext, "Unkown constant type: %d",(int) t);
-                               error ();
+                               error ("Unkown constant type: %d",(int) t);
                
                        }  /* end switch */
                        
@@ -1416,9 +1411,10 @@ static int class_load(classinfo *c)
 
        /* output for debugging purposes */
        if (loadverbose) {              
+               char logtext[MAXLOGTEXT];
                sprintf(logtext, "Loading class: ");
                utf_sprint(logtext+strlen(logtext), c->name);
-               dolog();
+               dolog(logtext);
        }
        
        /* load classdata, throw exception on error */
@@ -1434,9 +1430,8 @@ static int class_load(classinfo *c)
        mi = suck_u2(); 
        ma = suck_u2();
        if (ma != MAJOR_VERSION && (ma != MAJOR_VERSION+1 || mi != 0)) {
-               sprintf (logtext, "File version %d.%d is not supported",
+               error ("File version %d.%d is not supported",
                                 (int) ma, (int) mi);
-               error();
                }
 
        class_loadcpool (c);
@@ -1520,9 +1515,10 @@ static s4 class_highestinterface (classinfo *c)
        s4 i;
        
        if ( ! (c->flags & ACC_INTERFACE) ) {
+               char logtext[MAXLOGTEXT];
                sprintf (logtext, "Interface-methods count requested for non-interface:  ");
        utf_sprint (logtext+strlen(logtext), c->name);
-       error();
+       error(logtext);
        }
     
     h = c->index;
@@ -1845,9 +1841,10 @@ void class_link(classinfo *c)
 
 
        if (linkverbose) {
+               char logtext[MAXLOGTEXT];
                sprintf (logtext, "Linking Class: ");
                utf_sprint (logtext+strlen(logtext), c->name );
-               dolog ();
+               dolog (logtext);
        }
 
        /* compute vftbl length */
@@ -2379,10 +2376,11 @@ void class_init(classinfo *c)
         m = class_findmethod (c, utf_clinit, utf_fidesc);
         if (!m) {
                 if (initverbose) {
+                                               char logtext[MAXLOGTEXT];
                         sprintf (logtext, "Class ");
                         utf_sprint (logtext+strlen(logtext), c->name);
                         sprintf (logtext+strlen(logtext), " has no initializer");
-                        dolog ();
+                        dolog (logtext);
                         }
 /*              goto callinitialize;*/
                 return;
@@ -2392,9 +2390,10 @@ void class_init(classinfo *c)
                 panic ("Class initializer is not static!");
 
         if (initverbose) {
+                               char logtext[MAXLOGTEXT];
                 sprintf (logtext, "Starting initializer for class: ");
                 utf_sprint (logtext+strlen(logtext), c->name);
-                dolog ();
+                dolog (logtext);
         }
 
 #ifdef USE_THREADS
@@ -2419,9 +2418,10 @@ void class_init(classinfo *c)
                 }
 
         if (initverbose) {
+                               char logtext[MAXLOGTEXT];
                 sprintf (logtext, "Finished initializer for class: ");
                 utf_sprint (logtext+strlen(logtext), c->name);
-                dolog ();
+                dolog (logtext);
         }
         if (c->name == utf_systemclass) {
                 /* class java.lang.System requires explicit initialization */
index efddda46be7a5ad16e2a01aefc94035d915df04b..315105a94d6bdd43670ef58cfd135ed6e304ddc2 100644 (file)
@@ -35,7 +35,7 @@
        - the heap
        - additional support functions
 
-   $Id: tables.c 687 2003-12-04 22:29:54Z edwin $
+   $Id: tables.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -585,6 +585,7 @@ void utf_show ()
 u2 desc_to_type(utf *descriptor)
 {
        char *utf_ptr = descriptor->text;  /* current position in utf text */
+       char logtext[MAXLOGTEXT];
 
        if (descriptor->blength < 1) panic("Type-Descriptor is empty string");
        
@@ -603,7 +604,7 @@ u2 desc_to_type(utf *descriptor)
                        
        sprintf(logtext, "Invalid Type-Descriptor: ");
        utf_sprint(logtext+strlen(logtext), descriptor);
-       error();
+       error(logtext);
 
        return 0;
 }
index efddda46be7a5ad16e2a01aefc94035d915df04b..315105a94d6bdd43670ef58cfd135ed6e304ddc2 100644 (file)
--- a/tables.c
+++ b/tables.c
@@ -35,7 +35,7 @@
        - the heap
        - additional support functions
 
-   $Id: tables.c 687 2003-12-04 22:29:54Z edwin $
+   $Id: tables.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -585,6 +585,7 @@ void utf_show ()
 u2 desc_to_type(utf *descriptor)
 {
        char *utf_ptr = descriptor->text;  /* current position in utf text */
+       char logtext[MAXLOGTEXT];
 
        if (descriptor->blength < 1) panic("Type-Descriptor is empty string");
        
@@ -603,7 +604,7 @@ u2 desc_to_type(utf *descriptor)
                        
        sprintf(logtext, "Invalid Type-Descriptor: ");
        utf_sprint(logtext+strlen(logtext), descriptor);
-       error();
+       error(logtext);
 
        return 0;
 }
index 68f4dd0c5c4c03db6611cf1e657edf4918046a04..279c56c33006e05138c0488b8251fe8e1ccf7d98 100644 (file)
 
    Authors: Reinhard Grafl
 
-   $Id: loging.c 684 2003-12-02 16:50:17Z twisti $
+   $Id: loging.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
 
 #include <stdio.h>
+#include <stdarg.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 
                         LOG FILE HANDLING 
 ***************************************************************************/
 
-char logtext[MAXLOGTEXT];   /* Needs to be filled with desired text before */
-                            /* call to dolog() */
-
-
 FILE *logfile = NULL;
 
 
@@ -69,8 +66,15 @@ stdout.
 
 **************************************************************************/
 
-void dolog()
+void dolog(char *txt, ...)
 {
+       char logtext[MAXLOGTEXT];
+       va_list ap;
+
+       va_start(ap, txt);
+       vsprintf(logtext, txt, ap);
+       va_end(ap);
+
        if (logfile) {
                fprintf(logfile, "%s\n",logtext);
                fflush(logfile);
@@ -86,8 +90,7 @@ void dolog()
 
 void log_text(char *text)
 {
-       sprintf(logtext, "%s",text);
-       dolog();
+       dolog("%s", text);
 }
 
 
@@ -97,6 +100,7 @@ void log_cputime()
 {
    long int t;
    int sec, usec;
+   char logtext[MAXLOGTEXT];
 
    t = getcputime();
    sec = t / 1000000;
@@ -104,7 +108,7 @@ void log_cputime()
 
    sprintf(logtext, "Total CPU usage: %d seconds and %d milliseconds",
                   sec, usec / 1000);
-   dolog();
+   dolog(logtext);
 }
 
 
@@ -114,13 +118,20 @@ Like dolog(), but terminates the program immediately.
 
 **************************************************************************/
 
-void error()
+void error(char *txt, ...)
 {
+       char logtext[MAXLOGTEXT];
+       va_list ap;
+
+       va_start(ap, txt);
+       vsprintf(logtext, txt, ap);
+       va_end(ap);
+
        if (logfile) {
                fprintf(logfile, "ERROR: %s\n", logtext);
        }
 
-       printf("ERROR: %s\n",logtext);
+       fprintf(stderr, "ERROR: %s\n", logtext);
        exit(10);
 }
 
@@ -133,8 +144,7 @@ void error()
 
 void panic(char *txt)
 {
-       sprintf(logtext, "%s", txt);
-       error();
+       error("%s", txt);
 }
 
 
index c572ff8656f79920d9b9ed866899150047de7307..356f088131fede4f88a2bc543aa015dfdbc1cc77 100644 (file)
@@ -27,7 +27,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: loging.h 684 2003-12-02 16:50:17Z twisti $
+   $Id: loging.h 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -38,8 +38,6 @@
 #define PANICIF(when,txt)  if(when)panic(txt)
 
 #define MAXLOGTEXT 500
-extern char logtext[MAXLOGTEXT];
-
 
 /* function prototypes */
 
@@ -48,8 +46,8 @@ void log_text(char *txt);
 
 void log_cputime();
 
-void dolog();
-void error();
+void dolog(char *txt, ...);
+void error(char *txt, ...);
 void panic(char *txt);
 
 long int getcputime();
index 6bc745a0112e4e7f9009fee5b98be1848513e985..4334496b8e50c935f1510c91c58a85fff4242fc7 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: memory.c 662 2003-11-21 18:06:25Z jowenn $
+   $Id: memory.c 689 2003-12-05 18:03:47Z stefan $
 
 */
 
@@ -273,6 +273,7 @@ static void mem_characterlog(unsigned char *m, int len)
 {
 #      define LINESIZE 16
        int z, i;
+       char logtext[MAXLOGTEXT];
        
        for (z = 0; z < len; z += LINESIZE) {
                sprintf(logtext, "   ");
@@ -290,7 +291,7 @@ static void mem_characterlog(unsigned char *m, int len)
                                        "%c", (m[i] >= ' ' && m[i] <= 127) ? m[i] : '.');
                }
                        
-               dolog();
+               dolog(logtext);
        }
 }
 
@@ -448,17 +449,15 @@ void dump_release(long int size)
 void mem_usagelog (int givewarnings)
 {
        if ((memoryusage!=0) && givewarnings) {
-               sprintf (logtext, "Allocated memory not returned: %d",
+               dolog ("Allocated memory not returned: %d",
                                 (int)memoryusage);
-               dolog();
 
 #ifdef DEBUG
                { 
                        memblock *mb = firstmemblock;
                        while (mb) {
-                               sprintf (logtext, "   Memory block size: %d", 
+                               dolog ("   Memory block size: %d", 
                                                 (int)(mb->length) );
-                               dolog();
                                mem_characterlog ( ((unsigned char*)mb) + BLOCKOFFSET, mb->length);
                                mb = mb->next;
                        }
@@ -468,15 +467,13 @@ void mem_usagelog (int givewarnings)
        }
 
        if ((dumpsize!=0) && givewarnings) {
-               sprintf (logtext, "Dump memory not returned: %d",(int)dumpsize);
-               dolog();
+               dolog ("Dump memory not returned: %d",(int)dumpsize);
        }
 
 
-       sprintf(logtext, "Random/Dump - memory usage: %dK/%dK", 
+       dolog("Random/Dump - memory usage: %dK/%dK", 
                        (int)((maxmemusage+1023)/1024), 
                        (int)((maxdumpsize+1023)/1024) );
-       dolog();
        
 }