PatchSet 5544 
Date: 2004/12/06 00:15:30
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Fix for getClassContext

2004-12-05  Mark Wielaard  <[EMAIL PROTECTED]>

        * libraries/javalib/java/lang/VMSecurityManager.java
        (getClassContext): Cleanup returned stack.

Members: 
        ChangeLog:1.3090->1.3091 
        libraries/javalib/java/lang/VMSecurityManager.java:1.2->1.3 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3090 kaffe/ChangeLog:1.3091
--- kaffe/ChangeLog:1.3090      Sun Dec  5 22:43:25 2004
+++ kaffe/ChangeLog     Mon Dec  6 00:15:30 2004
@@ -1,3 +1,8 @@
+2004-12-05  Mark Wielaard  <[EMAIL PROTECTED]>
+
+       * libraries/javalib/java/lang/VMSecurityManager.java
+       (getClassContext): Cleanup returned stack.
+
 2004-12-05  Dalibor Topic  <[EMAIL PROTECTED]>
 
        * test/regression/ProcessClassInst.java,
Index: kaffe/libraries/javalib/java/lang/VMSecurityManager.java
diff -u kaffe/libraries/javalib/java/lang/VMSecurityManager.java:1.2 
kaffe/libraries/javalib/java/lang/VMSecurityManager.java:1.3
--- kaffe/libraries/javalib/java/lang/VMSecurityManager.java:1.2        Wed Apr 
 7 21:11:06 2004
+++ kaffe/libraries/javalib/java/lang/VMSecurityManager.java    Mon Dec  6 
00:15:33 2004
@@ -58,7 +58,19 @@
    * @return an array of the declaring classes of each stack frame
    */
   static Class[] getClassContext() {
-    return (ThreadStack.getClassStack());
+    Class[] rawStack = ThreadStack.getClassStack();
+    int i = 0;
+    while (i < rawStack.length
+          && (rawStack[i] == ThreadStack.class
+              || rawStack[i] == VMSecurityManager.class
+              || rawStack[i] == SecurityManager.class))
+      i++;
+
+    Class[] stack = new Class[rawStack.length - i];
+    for (int j = 0; j < stack.length; j++, i++)
+      stack[j] = rawStack[i];
+
+    return stack;
   }
 
   /**

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

Reply via email to