Fix for test 003-omnibus-opcodes

The test is holding a string that is hoped to be cleared live in a dex
register. Avoid this bug in the test by creating the weak reference in a
separate method. Bug: 5771901

Change-Id: I8713e153ec0ce7e028d0587ac8132596d73e955b
diff --git a/test/003-omnibus-opcodes/src/InternedString.java b/test/003-omnibus-opcodes/src/InternedString.java
index c2a2cd9..804564b 100644
--- a/test/003-omnibus-opcodes/src/InternedString.java
+++ b/test/003-omnibus-opcodes/src/InternedString.java
@@ -25,12 +25,15 @@
         testDeadInternedString();
     }
 
-    private static void testDeadInternedString() {
+    private static WeakReference<String> makeWeakString() {
         String s = "blah";
         s = s + s;
-        WeakReference strRef = new WeakReference<String>(s.intern());
-        // Kill s, otherwise the string object is still accessible from root set
-        s = CONST;
+        WeakReference<String> strRef = new WeakReference<String>(s.intern());
+        return strRef;
+    }
+
+    private static void testDeadInternedString() {
+        WeakReference<String> strRef = makeWeakString();
         System.gc();
         // "blahblah" should disappear from the intern list
         Main.assertTrue(strRef.get() == null);