diff options
Diffstat (limited to 'java/src/json/ext/GeneratorService.java')
-rw-r--r-- | java/src/json/ext/GeneratorService.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/java/src/json/ext/GeneratorService.java b/java/src/json/ext/GeneratorService.java index b8deb22..2f3b07e 100644 --- a/java/src/json/ext/GeneratorService.java +++ b/java/src/json/ext/GeneratorService.java @@ -7,6 +7,7 @@ package json.ext; import java.io.IOException; +import java.lang.ref.WeakReference; import org.jruby.Ruby; import org.jruby.RubyClass; @@ -23,15 +24,15 @@ public class GeneratorService implements BasicLibraryService { runtime.getLoadService().require("json/common"); RuntimeInfo info = RuntimeInfo.initRuntime(runtime); - info.jsonModule = runtime.defineModule("JSON"); - RubyModule jsonExtModule = info.jsonModule.defineModuleUnder("Ext"); + info.jsonModule = new WeakReference<RubyModule>(runtime.defineModule("JSON")); + RubyModule jsonExtModule = info.jsonModule.get().defineModuleUnder("Ext"); RubyModule generatorModule = jsonExtModule.defineModuleUnder("Generator"); RubyClass stateClass = generatorModule.defineClassUnder("State", runtime.getObject(), GeneratorState.ALLOCATOR); stateClass.defineAnnotatedMethods(GeneratorState.class); - info.generatorStateClass = stateClass; + info.generatorStateClass = new WeakReference<RubyClass>(stateClass); RubyModule generatorMethods = generatorModule.defineModuleUnder("GeneratorMethods"); |