]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/experimentation/RecursiveInitialization.java
Fixed all line endings of the repository
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / experimentation / RecursiveInitialization.java
index 5f5d20ddcfb907fb3a033156aac136f54d36d614..5abb99a5868bc8d67607e0123408a025ffd620db 100644 (file)
@@ -1,60 +1,60 @@
-package org.simantics.scl.compiler.tests.experimentation;\r
-\r
-import java.io.PrintWriter;\r
-import java.lang.reflect.Method;\r
-import java.util.concurrent.atomic.AtomicReference;\r
-\r
-import org.objectweb.asm.ClassVisitor;\r
-import org.objectweb.asm.ClassWriter;\r
-import org.objectweb.asm.MethodVisitor;\r
-import org.objectweb.asm.Opcodes;\r
-import org.objectweb.asm.util.TraceClassVisitor;\r
-\r
-public class RecursiveInitialization {\r
-\r
-    public static void main(String[] args) throws Exception {\r
-        ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS);\r
-        ClassVisitor classVisitor = new TraceClassVisitor(classWriter, new PrintWriter(System.out));\r
-        classVisitor.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC, "test/Test", null, "java/lang/Object", new String[0]);\r
-        MethodVisitor methodWriter = classVisitor.visitMethod(\r
-                Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC,\r
-                "main", "()Ljava/lang/Object;", null, null);\r
-        \r
-        methodWriter.visitCode();        \r
-        methodWriter.visitTypeInsn(Opcodes.NEW, "java/util/concurrent/atomic/AtomicReference");\r
-        methodWriter.visitVarInsn(Opcodes.ASTORE, 2);\r
-\r
-        methodWriter.visitTypeInsn(Opcodes.NEW, "java/util/concurrent/atomic/AtomicReference");\r
-        methodWriter.visitVarInsn(Opcodes.ASTORE, 1);\r
-        \r
-        methodWriter.visitVarInsn(Opcodes.ALOAD, 2);\r
-        methodWriter.visitVarInsn(Opcodes.ALOAD, 1);\r
-        //methodWriter.visitInsn(Opcodes.ACONST_NULL);\r
-        methodWriter.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/util/concurrent/atomic/AtomicReference", "<init>", "(Ljava/lang/Object;)V", false);\r
-        \r
-        methodWriter.visitVarInsn(Opcodes.ALOAD, 1);\r
-        methodWriter.visitVarInsn(Opcodes.ALOAD, 2);\r
-        methodWriter.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/util/concurrent/atomic/AtomicReference", "<init>", "(Ljava/lang/Object;)V", false);\r
-\r
-        methodWriter.visitVarInsn(Opcodes.ALOAD, 2);\r
-        methodWriter.visitInsn(Opcodes.ARETURN);\r
-        methodWriter.visitMaxs(0, 0);\r
-        methodWriter.visitEnd();\r
-        \r
-        byte[] bytes = classWriter.toByteArray();\r
-        ClassLoader classLoader = new ClassLoader() {\r
-            @Override\r
-            protected Class<?> findClass(String name) throws ClassNotFoundException {\r
-                if(!name.equals("test.Test"))\r
-                    throw new ClassNotFoundException();\r
-                return defineClass("test.Test", bytes, 0, bytes.length);\r
-            }\r
-        };\r
-        Class<?> clazz = classLoader.loadClass("test.Test");\r
-        Method method = clazz.getMethod("main");\r
-        AtomicReference<Object> result = (AtomicReference<Object>)method.invoke(null);\r
-        System.out.println(result.hashCode());\r
-        //System.out.println(result.get().hashCode());\r
-    }\r
-    \r
-}\r
+package org.simantics.scl.compiler.tests.experimentation;
+
+import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import java.util.concurrent.atomic.AtomicReference;
+
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.util.TraceClassVisitor;
+
+public class RecursiveInitialization {
+
+    public static void main(String[] args) throws Exception {
+        ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS);
+        ClassVisitor classVisitor = new TraceClassVisitor(classWriter, new PrintWriter(System.out));
+        classVisitor.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC, "test/Test", null, "java/lang/Object", new String[0]);
+        MethodVisitor methodWriter = classVisitor.visitMethod(
+                Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC,
+                "main", "()Ljava/lang/Object;", null, null);
+        
+        methodWriter.visitCode();        
+        methodWriter.visitTypeInsn(Opcodes.NEW, "java/util/concurrent/atomic/AtomicReference");
+        methodWriter.visitVarInsn(Opcodes.ASTORE, 2);
+
+        methodWriter.visitTypeInsn(Opcodes.NEW, "java/util/concurrent/atomic/AtomicReference");
+        methodWriter.visitVarInsn(Opcodes.ASTORE, 1);
+        
+        methodWriter.visitVarInsn(Opcodes.ALOAD, 2);
+        methodWriter.visitVarInsn(Opcodes.ALOAD, 1);
+        //methodWriter.visitInsn(Opcodes.ACONST_NULL);
+        methodWriter.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/util/concurrent/atomic/AtomicReference", "<init>", "(Ljava/lang/Object;)V", false);
+        
+        methodWriter.visitVarInsn(Opcodes.ALOAD, 1);
+        methodWriter.visitVarInsn(Opcodes.ALOAD, 2);
+        methodWriter.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/util/concurrent/atomic/AtomicReference", "<init>", "(Ljava/lang/Object;)V", false);
+
+        methodWriter.visitVarInsn(Opcodes.ALOAD, 2);
+        methodWriter.visitInsn(Opcodes.ARETURN);
+        methodWriter.visitMaxs(0, 0);
+        methodWriter.visitEnd();
+        
+        byte[] bytes = classWriter.toByteArray();
+        ClassLoader classLoader = new ClassLoader() {
+            @Override
+            protected Class<?> findClass(String name) throws ClassNotFoundException {
+                if(!name.equals("test.Test"))
+                    throw new ClassNotFoundException();
+                return defineClass("test.Test", bytes, 0, bytes.length);
+            }
+        };
+        Class<?> clazz = classLoader.loadClass("test.Test");
+        Method method = clazz.getMethod("main");
+        AtomicReference<Object> result = (AtomicReference<Object>)method.invoke(null);
+        System.out.println(result.hashCode());
+        //System.out.println(result.get().hashCode());
+    }
+    
+}