PatchSet 5705 
Date: 2004/12/22 00:22:01
Author: stack
Branch: HEAD
Tag: (none) 
Log:
Revert change that can cause a memory leak and add some tweaks to
eliminate some warnings.

Members: 
        ChangeLog:1.3250->1.3251 
        kaffe/kaffeh/support.c:1.46->1.47 
        kaffe/kaffevm/external.c:1.75->1.76 
        kaffe/kaffevm/file.c:1.1->1.2 
        kaffe/kaffevm/file.h:1.8->1.9 
        kaffe/kaffevm/findInJar.c:1.63->1.64 
        kaffe/kaffevm/jit3/machine.c:1.66->1.67 
        kaffe/kaffevm/jni/jni.c:1.14->1.15 
        libraries/clib/native/ClassLoader.c:1.40->1.41 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3250 kaffe/ChangeLog:1.3251
--- kaffe/ChangeLog:1.3250      Tue Dec 21 22:21:35 2004
+++ kaffe/ChangeLog     Wed Dec 22 00:22:01 2004
@@ -1,5 +1,22 @@
 2004-12-21  Timothy S. Stack  <[EMAIL PROTECTED]>
 
+       * kaffe/kaffeh/support.c, kaffe/kaffevm/file.h,
+       kaffe/kaffevm/file.c, kaffe/kaffevm/jni/jni.c,
+       libraries/clib/native/ClassLoader.c:
+       Be really pedantic about handling const variables and slots in the
+       classFile struct.
+       
+       * kaffe/kaffevm/findInJar.c:
+       Revert a couple changes from 1.63.
+
+       * kaffe/kaffevm/external.c:
+       Remove const from libraryPath variable.
+
+       * kaffe/kaffevm/jit3/machine.c:
+       Add const to engine_name variable.
+
+2004-12-21  Timothy S. Stack  <[EMAIL PROTECTED]>
+
        * kaffe/kaffevm/jit/machine.h, kaffe/kaffevm/jit/machine.c:
        Add jitCodeHeader support.
 
Index: kaffe/kaffe/kaffeh/support.c
diff -u kaffe/kaffe/kaffeh/support.c:1.46 kaffe/kaffe/kaffeh/support.c:1.47
--- kaffe/kaffe/kaffeh/support.c:1.46   Wed Dec  1 02:41:50 2004
+++ kaffe/kaffe/kaffeh/support.c        Wed Dec 22 00:22:02 2004
@@ -866,7 +866,11 @@
                                continue;
                        }
 
-                       classFileInit(&hand, buf, (size_t)sbuf.st_size, CP_DIR);
+                       classFileInit(&hand,
+                                     buf,
+                                     buf,
+                                     (size_t)sbuf.st_size,
+                                     CP_DIR);
 
                        objectDepth++;
                        /* savepool = constant_pool; */
@@ -909,7 +913,11 @@
                                continue;
                         }
 
-                       classFileInit(&hand, buf, jentry->uncompressedSize, 
CP_ZIPFILE);
+                       classFileInit(&hand,
+                                     buf,
+                                     buf,
+                                     jentry->uncompressedSize,
+                                     CP_ZIPFILE);
 
                        objectDepth++;
                        /* savepool = constant_pool; */
Index: kaffe/kaffe/kaffevm/external.c
diff -u kaffe/kaffe/kaffevm/external.c:1.75 kaffe/kaffe/kaffevm/external.c:1.76
--- kaffe/kaffe/kaffevm/external.c:1.75 Tue Dec 21 17:56:42 2004
+++ kaffe/kaffe/kaffevm/external.c      Wed Dec 22 00:22:03 2004
@@ -73,7 +73,7 @@
 } libHandle[MAXLIBS];
 
 static iStaticLock     libraryLock = KAFFE_STATIC_LOCK_INITIALIZER; /* mutex 
on all intern operations */
-static const char *libraryPath = NULL;
+static char *libraryPath = NULL;
 
 extern JavaVM Kaffe_JavaVM;
 
Index: kaffe/kaffe/kaffevm/file.c
diff -u kaffe/kaffe/kaffevm/file.c:1.1 kaffe/kaffe/kaffevm/file.c:1.2
--- kaffe/kaffe/kaffevm/file.c:1.1      Tue Apr 27 16:14:24 2004
+++ kaffe/kaffe/kaffevm/file.c  Wed Dec 22 00:22:03 2004
@@ -27,11 +27,16 @@
  * Init a a classFile struct to point to the given buffer.
  */
 void 
-classFileInit(classFile* cf, const unsigned char* buf, size_t len, 
ClassFileType cft)
+classFileInit(classFile* cf,
+             unsigned char* mem,
+             const unsigned char* buf,
+             size_t len,
+             ClassFileType cft)
 {
        assert (((buf == NULL) && (len == 0))
                 || ((buf != NULL) && (len != 0)));
 
+       cf->mem = mem;
        cf->base = cf->cur = buf;
        cf->size = len;
        cf->type = cft;
Index: kaffe/kaffe/kaffevm/file.h
diff -u kaffe/kaffe/kaffevm/file.h:1.8 kaffe/kaffe/kaffevm/file.h:1.9
--- kaffe/kaffe/kaffevm/file.h:1.8      Tue Apr 27 16:14:24 2004
+++ kaffe/kaffe/kaffevm/file.h  Wed Dec 22 00:22:03 2004
@@ -31,6 +31,7 @@
 } ClassFileType;
  
 typedef struct classFile {
+       unsigned char* mem;
        const unsigned char* base;
        const unsigned char* cur;
        size_t          size;
@@ -41,6 +42,7 @@
  * Init a a classFile struct to point to the given buffer.
  */
 extern void classFileInit(classFile* cf,
+                         unsigned char* mem,
                          const unsigned char* buf,
                          size_t len,
                          ClassFileType cft);
Index: kaffe/kaffe/kaffevm/findInJar.c
diff -u kaffe/kaffe/kaffevm/findInJar.c:1.63 
kaffe/kaffe/kaffevm/findInJar.c:1.64
--- kaffe/kaffe/kaffevm/findInJar.c:1.63        Tue Dec 21 08:06:36 2004
+++ kaffe/kaffe/kaffevm/findInJar.c     Wed Dec 22 00:22:04 2004
@@ -136,6 +136,7 @@
                class = newClass();
                if (class == NULL) {
                        postOutOfMemory(einfo);
+                       KFREE(hand.mem);
                        return (NULL);
                }
 
@@ -150,6 +151,7 @@
                                        -(jlong)GCSIZEOF(hand.base));
                        }
 #endif
+                       KFREE(hand.mem);
                }
                return (class);
 
@@ -202,7 +204,7 @@
                case CP_ZIPFILE:
                {
                        jarEntry* entry;
-                       const char* data;
+                       char* data;
 
 DBG(CLASSLOOKUP,       dprintf("Opening JAR file %s for %s\n", ptr->path, 
cname); );
                        if (ptr->u.jar == 0) {
@@ -229,7 +231,11 @@
                                goto done;
                        }
 
-                       classFileInit(hand, data, entry->uncompressedSize, 
CP_ZIPFILE);
+                       classFileInit(hand,
+                                     data,
+                                     data,
+                                     entry->uncompressedSize,
+                                     CP_ZIPFILE);
 
                        if (Kaffe_JavaVMArgs.enableVerboseClassloading) {
                                dprintf("Loading %s(%s)", cname, ptr->path);
@@ -304,7 +310,11 @@
                                }
                        }
 
-                       classFileInit(hand, data, (unsigned)sbuf.st_size, 
CP_DIR);
+                       classFileInit(hand,
+                                     data,
+                                     data,
+                                     (unsigned)sbuf.st_size,
+                                     CP_DIR);
 
                        KCLOSE(fp);
                        if (Kaffe_JavaVMArgs.enableVerboseClassloading) {
Index: kaffe/kaffe/kaffevm/jit3/machine.c
diff -u kaffe/kaffe/kaffevm/jit3/machine.c:1.66 
kaffe/kaffe/kaffevm/jit3/machine.c:1.67
--- kaffe/kaffe/kaffevm/jit3/machine.c:1.66     Tue Dec 21 22:21:37 2004
+++ kaffe/kaffe/kaffevm/jit3/machine.c  Wed Dec 22 00:22:05 2004
@@ -61,7 +61,7 @@
 #include "kaffe_jni.h"
 #include "native-wrapper.h"
 
-char* engine_name = "Just-in-time v3";
+const char* engine_name = "Just-in-time v3";
 
 /**
  * top of the operand stack. localsz <= stackno < localsz+stacksz
Index: kaffe/kaffe/kaffevm/jni/jni.c
diff -u kaffe/kaffe/kaffevm/jni/jni.c:1.14 kaffe/kaffe/kaffevm/jni/jni.c:1.15
--- kaffe/kaffe/kaffevm/jni/jni.c:1.14  Tue Dec 21 08:06:38 2004
+++ kaffe/kaffe/kaffevm/jni/jni.c       Wed Dec 22 00:22:05 2004
@@ -193,7 +193,7 @@
 
        BEGIN_EXCEPTION_HANDLING(NULL);
 
-       classFileInit(&hand, buf, len, CP_BYTEARRAY);
+       classFileInit(&hand, NULL, buf, (size_t)len, CP_BYTEARRAY);
 
        cls = newClass();
        if (cls == 0) {
Index: kaffe/libraries/clib/native/ClassLoader.c
diff -u kaffe/libraries/clib/native/ClassLoader.c:1.40 
kaffe/libraries/clib/native/ClassLoader.c:1.41
--- kaffe/libraries/clib/native/ClassLoader.c:1.40      Tue Dec 21 16:51:13 2004
+++ kaffe/libraries/clib/native/ClassLoader.c   Wed Dec 22 00:22:05 2004
@@ -44,7 +44,11 @@
        {
                SignalError("java.lang.ClassFormatError", "truncated class");
        }
-       classFileInit(&hand, &unhand_array(data)->body[offset], (unsigned) 
length, CP_BYTEARRAY);
+       classFileInit(&hand,
+                     NULL,
+                     &unhand_array(data)->body[offset],
+                     (unsigned) length,
+                     CP_BYTEARRAY);
 
        clazz = newClass();
        if (clazz == 0) {

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to