mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Java
		
	
	
	
| public class TestEarlyGC extends ClassLoader {
 | |
| 
 | |
|   static TestEarlyGC[] a = new TestEarlyGC[10];
 | |
| 
 | |
|   // Jeff Sturm writes:
 | |
|   // Reconstructed from bytecode (and memory).  The singleton pattern
 | |
|   // is used as a class finalizer.
 | |
|   // public class C {
 | |
|   //   private static C c;
 | |
|   //   public C() {
 | |
|   //     c = this;
 | |
|   //   }
 | |
|   //   protected void finalize() {
 | |
|   //     System.out.println("finalized");
 | |
|   //   }
 | |
|   // }
 | |
|   byte[] code = {
 | |
|     -54,-2,-70,-66,0,3,0,45,0,32,1,0,1,67,7,0,
 | |
|     1,1,0,16,106,97,118,97,47,108,97,110,103,47,79,98,
 | |
|     106,101,99,116,7,0,3,1,0,1,99,1,0,3,76,67,
 | |
|     59,1,0,6,60,105,110,105,116,62,1,0,3,40,41,86,
 | |
|     1,0,4,67,111,100,101,12,0,7,0,8,10,0,4,0,
 | |
|     10,12,0,5,0,6,9,0,2,0,12,1,0,15,76,105,
 | |
|     110,101,78,117,109,98,101,114,84,97,98,108,101,1,0,8,
 | |
|     102,105,110,97,108,105,122,101,1,0,16,106,97,118,97,47,
 | |
|     108,97,110,103,47,83,121,115,116,101,109,7,0,16,1,0,
 | |
|     3,111,117,116,1,0,21,76,106,97,118,97,47,105,111,47,
 | |
|     80,114,105,110,116,83,116,114,101,97,109,59,12,0,18,0,
 | |
|     19,9,0,17,0,20,1,0,9,102,105,110,97,108,105,122,
 | |
|     101,100,8,0,22,1,0,19,106,97,118,97,47,105,111,47,
 | |
|     80,114,105,110,116,83,116,114,101,97,109,7,0,24,1,0,
 | |
|     7,112,114,105,110,116,108,110,1,0,21,40,76,106,97,118,
 | |
|     97,47,108,97,110,103,47,83,116,114,105,110,103,59,41,86,
 | |
|     12,0,26,0,27,10,0,25,0,28,1,0,10,83,111,117,
 | |
|     114,99,101,70,105,108,101,1,0,6,67,46,106,97,118,97,
 | |
|     0,33,0,2,0,4,0,0,0,1,0,10,0,5,0,6,
 | |
|     0,0,0,2,0,1,0,7,0,8,0,1,0,9,0,0,
 | |
|     0,33,0,1,0,1,0,0,0,9,42,-73,0,11,42,-77,
 | |
|     0,13,-79,0,0,0,1,0,14,0,0,0,6,0,1,0,
 | |
|     4,0,5,0,4,0,15,0,8,0,1,0,9,0,0,0,
 | |
|     33,0,2,0,1,0,0,0,9,-78,0,21,18,23,-74,0,
 | |
|     29,-79,0,0,0,1,0,14,0,0,0,6,0,1,0,0,
 | |
|     0,9,0,1,0,30,0,0,0,2,0,31
 | |
|   };
 | |
| 
 | |
|   TestEarlyGC() throws Throwable {
 | |
|     defineClass("C", code, 0, code.length).newInstance();
 | |
|   }
 | |
| 
 | |
|   public static void main(String[] args) {
 | |
|     Runtime r = Runtime.getRuntime();
 | |
| 
 | |
|     try {
 | |
|       for (int n = 0; n < a.length; n++) {
 | |
|         a[n] = new TestEarlyGC();
 | |
|         r.gc();
 | |
|         r.runFinalization();
 | |
|         Thread.yield();
 | |
|       }
 | |
|     } catch (Throwable t) {
 | |
|       t.printStackTrace();
 | |
|     }
 | |
|   }
 | |
| }
 |