diff options
| author | John Firebaugh <john_firebaugh@us.ibm.com> | 2011-05-17 15:07:32 -0700 |
|---|---|---|
| committer | John Firebaugh <john_firebaugh@us.ibm.com> | 2011-05-18 11:51:09 -0700 |
| commit | 1a9725371131300e3230b4b9c14e669d334f4152 (patch) | |
| tree | 71351cad3478b74667a0658cc19badbe61e2ec3f /java/src/json/ext/GeneratorState.java | |
| parent | 65d259b09e1256e56f301d473a9a083315dc305d (diff) | |
| download | json-1a9725371131300e3230b4b9c14e669d334f4152.tar.gz | |
Fix memory leak when used from multiple JRuby runtimes.
Diffstat (limited to 'java/src/json/ext/GeneratorState.java')
| -rw-r--r-- | java/src/json/ext/GeneratorState.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/java/src/json/ext/GeneratorState.java b/java/src/json/ext/GeneratorState.java index dc99000..f04eda2 100644 --- a/java/src/json/ext/GeneratorState.java +++ b/java/src/json/ext/GeneratorState.java @@ -118,7 +118,7 @@ public class GeneratorState extends RubyObject { static GeneratorState fromState(ThreadContext context, RuntimeInfo info, IRubyObject opts) { - RubyClass klass = info.generatorStateClass; + RubyClass klass = info.generatorStateClass.get(); if (opts != null) { // if the given parameter is a Generator::State, return itself if (klass.isInstance(opts)) return (GeneratorState)opts; @@ -382,8 +382,8 @@ public class GeneratorState extends RubyObject { private ByteList prepareByteList(ThreadContext context, IRubyObject value) { RubyString str = value.convertToString(); RuntimeInfo info = RuntimeInfo.forRuntime(context.getRuntime()); - if (info.encodingsSupported() && str.encoding(context) != info.utf8) { - str = (RubyString)str.encode(context, info.utf8); + if (info.encodingsSupported() && str.encoding(context) != info.utf8.get()) { + str = (RubyString)str.encode(context, info.utf8.get()); } return str.getByteList().dup(); } |
