Title: [480] trunk/rails-integration/src/main: Added Ola's fix for the RubyString-byte-array problem
- Revision
- 480
- Author
- tantalon
- Date
- 2007-04-24 05:11:17 -0400 (Tue, 24 Apr 2007)
Log Message
Added Ola's fix for the RubyString-byte-array problem
Modified Paths
Added Paths
Diff
Added: trunk/rails-integration/src/main/java/org/jruby/webapp/util/StringHandler.java (0 => 480)
--- trunk/rails-integration/src/main/java/org/jruby/webapp/util/StringHandler.java (rev 0)
+++ trunk/rails-integration/src/main/java/org/jruby/webapp/util/StringHandler.java 2007-04-24 09:11:17 UTC (rev 480)
@@ -0,0 +1,45 @@
+/***** BEGIN LICENSE BLOCK *****
+ * Version: CPL 1.0/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Common Public
+ * License Version 1.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * Copyright (C) 2007 Ola Bini <[EMAIL PROTECTED]>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the CPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the CPL, the GPL or the LGPL.
+ ***** END LICENSE BLOCK *****/
+package org.jruby.webapp.util;
+
+import org.jruby.runtime.builtin.IRubyObject;
+import org.jruby.RubyString;
+import org.jruby.util.ByteList;
+
+/**
+ * @author <a href="" PROTECTED]">Ola Bini</a>
+ */
+public class StringHandler {
+ public static byte[] stringToBytes(IRubyObject str) {
+ return ((RubyString)str.getInstanceVariable("@string")).getBytes();
+ }
+
+ public static RubyString bytesToString(IRubyObject self, byte[] bs) {
+ return RubyString.newString(self.getRuntime(),new ByteList(bs, false));
+ }
+}// StringHandler
Modified: trunk/rails-integration/src/main/ruby/builtin/rails-integration/session/java_servlet_store.rb (479 => 480)
--- trunk/rails-integration/src/main/ruby/builtin/rails-integration/session/java_servlet_store.rb 2007-04-24 08:30:53 UTC (rev 479)
+++ trunk/rails-integration/src/main/ruby/builtin/rails-integration/session/java_servlet_store.rb 2007-04-24 09:11:17 UTC (rev 480)
@@ -54,21 +54,13 @@
private
def string_to_bytes(str)
- bytes = Java::JavaClass.for_name("byte").new_array(str.length)
- i = 0
- str.each_byte do |b|
- java.lang.reflect.Array.setByte(bytes, i, b)
- i += 1
- end
- bytes
+ o = Object.new
+ o.instance_variable_set :@string, str
+ org.jruby.webapp.util.StringHandler.stringToBytes(o)
end
def bytes_to_string(bytes)
- str = ''
- for i in 0...bytes.length
- str << java.lang.reflect.Array.getByte(bytes, i)
- end
- str
+ org.jruby.webapp.util.StringHandler.bytesToString(self, bytes)
end
end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel