[#13842] Better introspection for Frames, Thread, and enhancing binding. — "Rocky Bernstein" <rocky.bernstein@...>
The below is a little long. So here's a summary.
Rocky Bernstein wrote:
Ryan Davis wrote:
Ryan Davis wrote:
[#13851] Array#flatten works quadratic time on length of resulting array. It could be linear — "Voroztsov Artem" <artem.voroztsov@...>
I encountered problem with Array#flatten slowness (it can be much
Voroztsov Artem wrote:
2007/12/3, Charles Oliver Nutter <charles.nutter@sun.com>:
2007/12/3, Voroztsov Artem <artem.voroztsov@gmail.com>:
Hi,
Hi,
2007/12/4, Nobuyoshi Nakada <nobu@ruby-lang.org>:
Hi,
Hi,
[#13854] A little concern about m17n — Daniel DeLorme <dan-ml@...42.com>
I know it's kinda late to make any changes to the 1.9 roadmap, so I'm
[#13885] Idea: always yield current thread to Thread.new — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13887] Can we foresee any big changes for Ruby in year 2008? — "Song Ma" <songmash@...>
Hi,
[#13889] Continuations on dead threads crash 1.8.6 and 1.6.8 — Brent Roman <brent@...>
[#13893] How to have fine grain control over GL in C extensions — hemant <gethemant@...>
Hi,
On Dec 6, 2007 6:35 PM, hemant <gethemant@gmail.com> wrote:
[#13897] issue with Date class freeze — "Christopher Gill" <gilltots@...>
Hello all,
[#13903] Clarification of retry change — Charles Oliver Nutter <charles.nutter@...>
Matz confirmed that retry-outside-rescue will no longer work, but I
Hi,
SASADA Koichi wrote:
On Dec 7, 2007 12:48 AM, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
Brian Mitchell wrote:
[#13908] What's the status of compiler/compiling on windows? — Gonzalo Garramu <ggarra@...>
Hi,
Nobuyoshi Nakada wrote:
T24gRGVjIDcsIDIwMDcgODoyMSBBTSwgR29uemFsbyBHYXJyYW11w7FvIDxnZ2FycmFAYWR2YW5j
Hi Luis
On Dec 12, 2007 4:05 PM, Joe Swatosh <joe.swatosh@gmail.com> wrote:
> This was discussed in other thread in ruby-talk, but just to summarize:
Hi,
On Dec 12, 2007 5:00 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
On Dec 12, 2007 1:55 PM, Austin Ziegler <halostatue@gmail.com> wrote:
[#13916] Changes in C API of Ruby 1.9 — hemant <gethemant@...>
Hi,
> -----Original Message-----
[#13961] Error while bulding Ruby 1.9 from snapshot 2007/12/09 — Wolfgang Nádasi-Donner <ed.odanow@...>
[#13969] redefineable not operator — David Flanagan <david@...>
Matz,
David Flanagan wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
murphy wrote:
Hi,
[#13989] Compliment to rb_thread_blocking_region() ? — "Tony Arcieri" <tony@...>
The rb_thread_blocking_region() appears to allow releasing the GIL and
On Tue, 11 Dec 2007 06:41:56 +0900, "Tony Arcieri" <tony@clickcaster.com> wrote:
On Dec 10, 2007 3:49 PM, MenTaLguY <mental@rydia.net> wrote:
[#13997] Output of "ruby --help" looks not correct for Ruby 1.9 — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning!
[#13998] Array#pack and String#unpack documentation — "Gary Wright" <radar2002@...>
In working with Array#pack and String#unpack today, I found
Hi,
On Dec 11, 2007, at 9:10 AM, Yukihiro Matsumoto wrote:
[#14042] Fix e2mmap.rb for 1.9 — Eric Hodel <drbrain@...7.net>
E2MM.Raise complains about $! being read-only now, and E2MM is used by
On Dec 12, 2007, at 16:19 PM, Dave Thomas wrote:
Dave Thomas wrote:
Hello Dave,
[#14083] multibyte characters in curses — "Michal Suchanek" <hramrach@...>
Hello,
[#14086] attr_accessor for question methods (?) — Trans <transfire@...>
Like to make a small suggestion for 1.9. It would be great if we could
[#14102] Small (hopefully) problem with RDoc (Ruby 1.9) — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning!
I made some tests, unfortunately the debugger crashed, so I
[#14111] What does volatile assignment of *pos in rb_thread_s_new() do? — Brent Roman <brent@...>
[#14118] Enumerable#uniq, anybody? — Martin Duerst <duerst@...>
I have just tried to use zip followed by uniq in a 1.9 context.
[#14123] Some Ruby 1.9 loose ends to tie up — David Flanagan <david@...>
Matz,
Hi,
Yukihiro Matsumoto wrote:
Hi,
SASADA Koichi wrote:
[#14126] Curious warning with IO.popen on Windows — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#14130] Another last-minute Ruby 1.9 question — David Flanagan <david@...>
Here's another last-minute question, probably for Matz or Nobu...
[#14139] String#% bug on Windows? — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#14140] rest argument able to duplicate/replace local argument bug? — Thomas Enebo <Thomas.Enebo@...>
This is a bug right?
[#14147] named captures assigning to local variables — David Flanagan <david@...>
I've just been browsing ruby-dev. For an english speaker, it is kind of
In article <47686B87.7050609@davidflanagan.com>,
Thank you for the clarification, akr. I'm embarassed to say that it didn't
If I may, have a proposal. My apologies if this has already been
David Flanagan wrote:
In article <476A087E.3070000@davidflanagan.com>,
How about making the return value an array of the captured strings, or nil
In article <S2445477AbXLTQsI/20071220164808Z+24367@swip003.ftl.affinity.com>,
Tanaka Akira wrote:
Attached is a variation on my patch that makes it return $~ instead of
Hi --
David A. Black wrote:
[#14149] Experimental PATCH to improve thread performance — Brent Roman <brent@...>
The attached patch against Ruby 1.8.6-p110 improves the performance of
Brent Roman wrote:
Brent Roman wrote:
On Sat, Dec 22, 2007 at 11:07:25PM +0900, Charles Oliver Nutter wrote:
Sylvain Joyeux wrote:
> The rule of thumb is basically this: don't allow changing the path of a
Sylvain Joyeux wrote:
On Thu, Dec 27, 2007 at 01:57:22AM +0900, Charles Oliver Nutter wrote:
Sylvain Joyeux wrote:
Brent Roman wrote:
Brent Roman wrote:
Brent Roman wrote:
Brent Roman wrote:
[#14175] xmlrpc/client ssl client auth — Jeremy Thurgood <jerith@...>
Good day,
[#14186] Rake 0.8.0 added to Ruby — Jim Weirich <jim.weirich@...>
Just a heads up here. I've added Rake (version 0.8.0 ... the latest)
Jim Weirich wrote:
Jim Weirich wrote:
On Dec 21, 2007 10:24 AM, Gonzalo Garramu=F1o <ggarra@advancedsl.com.ar> wr=
Jim Weirich wrote:
On Dec 21, 2007 12:28 PM, Dave Thomas <dave@pragprog.com> wrote:
On Dec 21, 2007 9:06 PM, Rick DeNatale <rick.denatale@gmail.com> wrote:
[#14203] Re: Problem with case statements — hemant kumar <gethemant@...>
[#14224] Status of two issues — Trans <transfire@...>
Will the #autoload require issue be addressed?
Hi,
[#14237] io.c patch for two encodings in file mode — David Flanagan <david@...>
The attached patch adds support for filemodes like "r:utf-8:iso-8859-15"
[#14251] Semantics of caller (was Re: Some Ruby 1.9 loose ends to tie up) — "Rocky Bernstein" <rocky.bernstein@...>
On Dec 21, 2007 8:56 PM, Charles Oliver Nutter <charles.nutter@sun.com>
Rocky Bernstein wrote:
[#14280] Block-local variables - obsolete? — murphy <murphy@...>
hello!
Only block parameters are now always local to the block; variables
Charles Oliver Nutter wrote:
[#14286] Why is Array not Comparable — Martin Duerst <duerst@...>
I just bumped into this:
At 10:40 07/12/23, Rick DeNatale wrote:
[#14303] IRHG - GC Memory Fragmentation? — Charles Thornton <ceo@...>
While working on Chapter 05 and referencing various works
Ryan Davis wrote:
Ryan Davis wrote:
[#14335] Many external symbols _without_ prefix in libruby object file — Tadashi Saito <shiba@...2.accsnet.ne.jp>
Hi all,
[#14364] RDoc: [FATAL] failed to allocate memory — Martin Duerst <duerst@...>
With revision 14590, I suddenly get an error when I do "make install"
On Dec 24, 2007 9:51 AM, Martin Duerst <duerst@it.aoyama.ac.jp> wrote:
[#14367] replace csv.rb with fastercsv.rb — "NAKAMURA, Hiroshi" <nakahiro@...>
-----BEGIN PGP SIGNED MESSAGE-----
On Dec 24, 2007, at 3:34 AM, NAKAMURA, Hiroshi wrote:
On Dec 24, 2007, at 1:16 PM, James Gray wrote:
James Gray wrote:
[#14378] module_eval change between ruby1.8 & ruby 1.9. Is it intentional ? — Frederick Cheung <frederick.cheung@...>
Hi,
[#14389] pre-release note for the christmas release. — Yukihiro Matsumoto <matz@...>
Hi,
[#14398] Timeout.timeout expires early - breaks RubyGems — Eric Hodel <drbrain@...7.net>
Sometimes Timeout.timeout expires early. I see this with `gem
On Dec 24, 2007, at 16:36 PM, Eric Hodel wrote:
On Dec 24, 2007, at 17:14 PM, Eric Hodel wrote:
[#14418] Base64 not there makes Rails 2.0.2 fail to load in 1.9.0 — Richard Kilmer <rich@...>
Just re-built latest svn of 1.9.0 and base64.rb is removed. Its
On Dec 25, 2007, at 07:03 AM, Richard Kilmer wrote:
Eric Hodel wrote:
On Dec 25, 2007, at 13:35 PM, Dave Thomas wrote:
On Dec 26, 2007, at 06:16 AM, Dave Thomas wrote:
Richard Kilmer wrote:
Charles Oliver Nutter wrote:
On Dec 26, 2007 1:01 AM, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:
hemant wrote:
M. Edward (Ed) Borasky wrote:
Gonzalo Garramu wrote:
M. Edward (Ed) Borasky wrote:
[#14440] Odd situation with mingw, readline and readline tests. — "Luis Lavena" <luislavena@...>
Hello again,
[#14497] Status of Event Driven Network Programming Libraries in 1.9 — hemant <gethemant@...>
Hi,
[#14501] Should Ruby1.9 default program suffix be changed? — "Rick DeNatale" <rick.denatale@...>
Having seen several posts on various ruby related forum from folks who
Rick DeNatale wrote:
Dave Thomas schrieb:
On Dec 27, 2007 8:37 PM, Dave Thomas <dave@pragprog.com> wrote:
[#14517] Invalid use of mktime() in Ruby 1.8/1.9 results in incorrect Time objects — Dirkjan Bussink <d.bussink@...>
Hello,
In article <7CE19CBC-71C5-48FE-A2E7-4FCE489A7090@gmail.com>,
In article <A389041B-BC9F-409F-80B4-09971F62B7DE@gmail.com>,
In article <945DBEDA-10F1-40D0-AF7E-CF82EFF627AC@gmail.com>,
[#14524] Zlib::Inflate changes to net/http.rb — Filipe Lautert <filipe@...>
[#14549] multibyte strings & bucket-of-bytes efficiency under 1.9.0 — khaines@...
Like everyone else, I've been testing my stuff under 1.9.0. In general,
Brent Roman wrote:
In article <14544702.post@talk.nabble.com>,
Hello Akira,
In article <6.0.0.20.2.20071231173234.0a28c170@localhost>,
At 01:54 08/01/02, Austin Ziegler wrote:
On Jan 3, 2008 1:04 AM, Martin Duerst <duerst@it.aoyama.ac.jp> wrote:
After reading this thread, and looking at the the title, let me make
On Thu, 3 Jan 2008, Rick DeNatale wrote:
[#14550] Ruby 1.9 and Unicode — Sam Ruby <rubys@...>
I've tried porting a few small codebases, and a few experiments, and
Sam Ruby wrote:
David Flanagan wrote:
> As well an explanation of the differences between the following two
[#14555] module_eval oddness on 1.9 — Frederick Cheung <frederick.cheung@...>
[#14564] locale in ruby — "Michal Suchanek" <hramrach@...>
Hello
At 07:55 07/12/30, Michal Suchanek wrote:
In article <6.0.0.20.2.20071231200106.0b1bfb00@localhost>,
At 14:17 08/01/01, Tanaka Akira wrote:
[#14568] Layout of includes in ruby 1.9 — Gonzalo Garramu <ggarra@...>
On Dec 29, 2007 2:39 AM, Gonzalo Garramu=F1o <ggarra@advancedsl.com.ar> wro=
Hello,
U.Nakamura wrote:
>>>>> "G" == Gonzalo Garramu=F1o?= <ISO-8859-1> writes:
ts wrote:
>>>>> "G" == Gonzalo Garramu=F1o?= <ISO-8859-1> writes:
ts wrote:
[#14569] Wide strings to ruby strings — Gonzalo Garramu <ggarra@...>
On Dec 29, 2007 2:58 AM, Gonzalo Garramu=F1o <ggarra@advancedsl.com.ar> wro=
Austin Ziegler wrote:
[#14602] RCR allow indexing last n items — "Michal Suchanek" <hramrach@...>
Hello
Hi --
On 30/12/2007, David A. Black <dblack@rubypal.com> wrote:
Hi --
On 31/12/2007, David A. Black <dblack@rubypal.com> wrote:
Hi --
On 31/12/2007, David A. Black <dblack@rubypal.com> wrote:
Hi --
[#14621] Module.new(&block) in Ruby 1.9 — murphy <murphy@...>
Hello!
This looks like a related bug with passing block arguments to
Cheah Chu Yeow wrote:
Hi,
>>>>> "S" == SASADA Koichi <ko1@atdot.net> writes:
Hi,
Hi,
Jeremy Kemper wrote:
On Tue, Apr 01, 2008 at 05:43:34PM +0900, ts wrote:
Sylvain Joyeux wrote:
About bug [#19304]
Sylvain Joyeux wrote:
> > Finally, I'm not sure my last mail actually reached the list. Guy: I
[#14639] Rexml and Ruby 1.9 — Sam Ruby <rubys@...>
Ticket: http://www.germane-software.com/projects/rexml/ticket/131
Re: Legacy support (Was: Base64 not there makes Rails 2.0.2 fail to load in 1.9.0)
Hello ruby-core and Mr. Tomita, M. Edward (Ed) Borasky wrote: > Of the list I see here (rcov, hpricot, active_support, mysql, > eventmachine and mongrel) I think only eventmachine and mongrel "really > need" C-level code. I fixed the mysql extension to make it compile under Ruby 1.9 some time ago - it still compiles for 1.8 as well. I attached the patch to this mail. BTW: I also tried to use some unsigned conversion functions instead of the old signed ones, when I found the values to be defined as unsigned in the Mysql header files. This was probably uneccesary, but it shouldn't be harmful either. I CC-ed this Mail to Mr. Tomita, so he can review the patch and maybe apply it to the extension. You may apply it yourselves as well, if you can't wait. ;) -- Florian Frank
Attachments (1)
Index: test.rb
===================================================================
--- test.rb (revision 3682)
+++ test.rb (working copy)
@@ -4,9 +4,11 @@
require "test/unit"
require "./mysql.o"
+ARGS = ARGV.dup
+
class TC_Mysql < Test::Unit::TestCase
def setup()
- @host, @user, @pass, db, port, sock, flag = ARGV
+ @host, @user, @pass, db, port, sock, flag = ARGS
@db = db || "test"
@port = port.to_i
@sock = sock.nil? || sock.empty? ? nil : sock
@@ -95,7 +97,7 @@
class TC_Mysql2 < Test::Unit::TestCase
def setup()
- @host, @user, @pass, db, port, sock, flag = ARGV
+ @host, @user, @pass, db, port, sock, flag = ARGS
@db = db || "test"
@port = port.to_i
@sock = sock.nil? || sock.empty? ? nil : sock
@@ -203,7 +205,7 @@
class TC_MysqlRes < Test::Unit::TestCase
def setup()
- @host, @user, @pass, db, port, sock, flag = ARGV
+ @host, @user, @pass, db, port, sock, flag = ARGS
@db = db || "test"
@port = port.to_i
@sock = sock.nil? || sock.empty? ? nil : sock
@@ -403,7 +405,7 @@
class TC_MysqlStmt < Test::Unit::TestCase
def setup()
- @host, @user, @pass, db, port, sock, flag = ARGV
+ @host, @user, @pass, db, port, sock, flag = ARGS
@db = db || "test"
@port = port.to_i
@sock = sock.nil? || sock.empty? ? nil : sock
@@ -433,7 +435,7 @@
class TC_MysqlStmt2 < Test::Unit::TestCase
def setup()
- @host, @user, @pass, db, port, sock, flag = ARGV
+ @host, @user, @pass, db, port, sock, flag = ARGS
@db = db || "test"
@port = port.to_i
@sock = sock.nil? || sock.empty? ? nil : sock
Index: extconf.rb
===================================================================
--- extconf.rb (revision 3682)
+++ extconf.rb (working copy)
@@ -70,4 +70,6 @@
end
end
+have_func('rb_str_set_len')
+
create_makefile("mysql")
Index: mysql.c.in
===================================================================
--- mysql.c.in (revision 3682)
+++ mysql.c.in (working copy)
@@ -3,7 +3,25 @@
*/
#include "ruby.h"
-#include "version.h"
+
+#ifndef RARRAY_PTR
+#define RARRAY_PTR(ARRAY) RARRAY(ARRAY)->ptr
+#endif
+#ifndef RARRAY_LEN
+#define RARRAY_LEN(ARRAY) RARRAY(ARRAY)->len
+#endif
+#ifndef RSTRING_PTR
+#define RSTRING_PTR(string) RSTRING(string)->ptr
+#endif
+#ifndef RSTRING_LEN
+#define RSTRING_LEN(string) RSTRING(string)->len
+#endif
+#if HAVE_RB_STR_SET_LEN
+#define RSTRING_LEN_SET(string, n) rb_str_set_len(string, n)
+#else
+#define RSTRING_LEN_SET(string, n) RSTRING(string)->len = n
+#endif
+
#ifdef HAVE_MYSQL_H
#include <mysql.h>
#include <errmsg.h>
@@ -172,7 +190,7 @@
static void mysql_raise(MYSQL* m)
{
VALUE e = rb_exc_new2(eMysql, mysql_error(m));
- rb_iv_set(e, "errno", INT2FIX(mysql_errno(m)));
+ rb_iv_set(e, "errno", UINT2NUM(mysql_errno(m)));
#if MYSQL_VERSION_ID >= 40101
rb_iv_set(e, "sqlstate", rb_tainted_str_new2(mysql_sqlstate(m)));
#endif
@@ -202,11 +220,11 @@
rb_iv_set(obj, "name", f->name? rb_str_freeze(rb_tainted_str_new2(f->name)): Qnil);
rb_iv_set(obj, "table", f->table? rb_str_freeze(rb_tainted_str_new2(f->table)): Qnil);
rb_iv_set(obj, "def", f->def? rb_str_freeze(rb_tainted_str_new2(f->def)): Qnil);
- rb_iv_set(obj, "type", INT2NUM(f->type));
- rb_iv_set(obj, "length", INT2NUM(f->length));
- rb_iv_set(obj, "max_length", INT2NUM(f->max_length));
- rb_iv_set(obj, "flags", INT2NUM(f->flags));
- rb_iv_set(obj, "decimals", INT2NUM(f->decimals));
+ rb_iv_set(obj, "type", UINT2NUM(f->type));
+ rb_iv_set(obj, "length", UINT2NUM(f->length));
+ rb_iv_set(obj, "max_length", UINT2NUM(f->max_length));
+ rb_iv_set(obj, "flags", UINT2NUM(f->flags));
+ rb_iv_set(obj, "decimals", UINT2NUM(f->decimals));
return obj;
}
@@ -277,8 +295,8 @@
{
VALUE ret;
Check_Type(str, T_STRING);
- ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
- RSTRING(ret)->len = mysql_escape_string(RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
+ ret = rb_str_new(0, (RSTRING_LEN(str))*2+1);
+ RSTRING_LEN_SET(ret, mysql_escape_string(RSTRING_PTR(ret), RSTRING_PTR(str), RSTRING_LEN(str)));
return ret;
}
@@ -301,7 +319,7 @@
/* client_version() */
static VALUE client_version(VALUE obj)
{
- return INT2NUM(mysql_get_client_version());
+ return UINT2NUM(mysql_get_client_version());
}
#endif
@@ -411,8 +429,8 @@
MYSQL* m = GetHandler(obj);
VALUE ret;
Check_Type(str, T_STRING);
- ret = rb_str_new(0, (RSTRING(str)->len)*2+1);
- RSTRING(ret)->len = mysql_real_escape_string(m, RSTRING(ret)->ptr, RSTRING(str)->ptr, RSTRING(str)->len);
+ ret = rb_str_new(0, (RSTRING_LEN(str))*2+1);
+ RSTRING_LEN_SET(ret, mysql_real_escape_string(m, RSTRING_PTR(ret), RSTRING_PTR(str), RSTRING_LEN(str)));
return ret;
}
#endif
@@ -426,7 +444,7 @@
/* affected_rows() */
static VALUE affected_rows(VALUE obj)
{
- return INT2NUM(mysql_affected_rows(GetHandler(obj)));
+ return UINT2NUM(mysql_affected_rows(GetHandler(obj)));
}
#if MYSQL_VERSION_ID >= 32303
@@ -497,7 +515,7 @@
/* errno() */
static VALUE my_errno(VALUE obj)
{
- return INT2NUM(mysql_errno(GetHandler(obj)));
+ return UINT2NUM(mysql_errno(GetHandler(obj)));
}
/* error() */
@@ -509,7 +527,7 @@
/* field_count() */
static VALUE field_count(VALUE obj)
{
- return INT2NUM(mysql_field_count(GetHandler(obj)));
+ return UINT2NUM(mysql_field_count(GetHandler(obj)));
}
/* host_info() */
@@ -521,7 +539,7 @@
/* proto_info() */
static VALUE proto_info(VALUE obj)
{
- return INT2NUM(mysql_get_proto_info(GetHandler(obj)));
+ return UINT2NUM(mysql_get_proto_info(GetHandler(obj)));
}
/* server_info() */
@@ -540,7 +558,7 @@
/* insert_id() */
static VALUE insert_id(VALUE obj)
{
- return INT2NUM(mysql_insert_id(GetHandler(obj)));
+ return UINT2NUM(mysql_insert_id(GetHandler(obj)));
}
/* kill(pid) */
@@ -694,7 +712,7 @@
/* thread_id() */
static VALUE thread_id(VALUE obj)
{
- return INT2NUM(mysql_thread_id(GetHandler(obj)));
+ return UINT2NUM(mysql_thread_id(GetHandler(obj)));
}
/* use_result() */
@@ -722,7 +740,7 @@
if (mysql_get_server_version(m) >= 40101 && mysql_set_server_option(m, MYSQL_OPTION_MULTI_STATEMENTS_ON) != 0)
mysql_raise(m);
#endif
- if (mysql_real_query(m, RSTRING(sql)->ptr, RSTRING(sql)->len) != 0)
+ if (mysql_real_query(m, RSTRING_PTR(sql), RSTRING_LEN(sql)) != 0)
mysql_raise(m);
do {
MYSQL_RES* res = mysql_store_result(m);
@@ -742,7 +760,7 @@
#endif
return obj;
}
- if (mysql_real_query(m, RSTRING(sql)->ptr, RSTRING(sql)->len) != 0)
+ if (mysql_real_query(m, RSTRING_PTR(sql), RSTRING_LEN(sql)) != 0)
mysql_raise(m);
if (GetMysqlStruct(obj)->query_with_result == Qfalse)
return obj;
@@ -755,13 +773,13 @@
/* server_version() */
static VALUE server_version(VALUE obj)
{
- return INT2NUM(mysql_get_server_version(GetHandler(obj)));
+ return UINT2NUM(mysql_get_server_version(GetHandler(obj)));
}
/* warning_count() */
static VALUE warning_count(VALUE obj)
{
- return INT2NUM(mysql_warning_count(GetHandler(obj)));
+ return UINT2NUM(mysql_warning_count(GetHandler(obj)));
}
/* commit() */
@@ -894,11 +912,7 @@
static VALUE query_with_result_set(VALUE obj, VALUE flag)
{
if (TYPE(flag) != T_TRUE && TYPE(flag) != T_FALSE)
-#if RUBY_VERSION_CODE < 160
- TypeError("invalid type, required true or false.");
-#else
rb_raise(rb_eTypeError, "invalid type, required true or false.");
-#endif
GetMysqlStruct(obj)->query_with_result = flag;
return flag;
}
@@ -971,12 +985,8 @@
res = GetMysqlRes(obj);
max = mysql_num_fields(res);
n = NUM2INT(nr);
- if (n >= max)
-#if RUBY_VERSION_CODE < 160
- Raise(eMysql, "%d: out of range (max: %d)", n, max-1);
-#else
+ if (n >= max)
rb_raise(eMysql, "%d: out of range (max: %d)", n, max-1);
-#endif
#if MYSQL_VERSION_ID >= 32226
return make_field_obj(mysql_fetch_field_direct(res, n));
#else
@@ -1000,7 +1010,7 @@
return Qnil;
ary = rb_ary_new2(n);
for (i=0; i<n; i++)
- rb_ary_store(ary, i, INT2NUM(lengths[i]));
+ rb_ary_store(ary, i, UINT2NUM(lengths[i]));
return ary;
}
@@ -1045,8 +1055,8 @@
col = rb_tainted_str_new2(fields[i].name);
else {
col = rb_tainted_str_new(fields[i].table, strlen(fields[i].table)+strlen(fields[i].name)+1);
- RSTRING(col)->ptr[strlen(fields[i].table)] = '.';
- strcpy(RSTRING(col)->ptr+strlen(fields[i].table)+1, fields[i].name);
+ RSTRING_PTR(col)[strlen(fields[i].table)] = '.';
+ strcpy(RSTRING_PTR(col)+strlen(fields[i].table)+1, fields[i].name);
}
rb_hash_aset(hash, col, row[i]? rb_tainted_str_new(row[i], lengths[i]): Qnil);
}
@@ -1068,14 +1078,14 @@
static VALUE field_seek(VALUE obj, VALUE offset)
{
check_free(obj);
- return INT2NUM(mysql_field_seek(GetMysqlRes(obj), NUM2INT(offset)));
+ return UINT2NUM(mysql_field_seek(GetMysqlRes(obj), NUM2INT(offset)));
}
/* field_tell() */
static VALUE field_tell(VALUE obj)
{
check_free(obj);
- return INT2NUM(mysql_field_tell(GetMysqlRes(obj)));
+ return UINT2NUM(mysql_field_tell(GetMysqlRes(obj)));
}
/* free() */
@@ -1093,14 +1103,14 @@
static VALUE num_fields(VALUE obj)
{
check_free(obj);
- return INT2NUM(mysql_num_fields(GetMysqlRes(obj)));
+ return UINT2NUM(mysql_num_fields(GetMysqlRes(obj)));
}
/* num_rows() */
static VALUE num_rows(VALUE obj)
{
check_free(obj);
- return INT2NUM(mysql_num_rows(GetMysqlRes(obj)));
+ return UINT2NUM(mysql_num_rows(GetMysqlRes(obj)));
}
/* row_seek(offset) */
@@ -1170,8 +1180,8 @@
static VALUE field_inspect(VALUE obj)
{
VALUE n = rb_iv_get(obj, "name");
- VALUE s = rb_str_new(0, RSTRING(n)->len + 16);
- sprintf(RSTRING(s)->ptr, "#<Mysql::Field:%s>", RSTRING(n)->ptr);
+ VALUE s = rb_str_new(0, RSTRING_LEN(n) + 16);
+ sprintf(RSTRING_PTR(s), "#<Mysql::Field:%s>", RSTRING_PTR(n));
return s;
}
@@ -1240,7 +1250,7 @@
my_ulonglong n;
check_stmt_closed(obj);
n = mysql_stmt_affected_rows(s->stmt);
- return INT2NUM(n);
+ return UINT2NUM(n);
}
#if 0
@@ -1297,7 +1307,7 @@
else if (argv[i] == cMysqlTime)
s->result.bind[i].buffer_type = MYSQL_TYPE_DATETIME;
else
- rb_raise(rb_eTypeError, "unrecognized class: %s", RSTRING(rb_inspect(argv[i]))->ptr);
+ rb_raise(rb_eTypeError, "unrecognized class: %s", RSTRING_PTR(rb_inspect(argv[i])));
if (mysql_stmt_bind_result(s->stmt, s->result.bind))
mysql_stmt_raise(s->stmt);
}
@@ -1359,9 +1369,9 @@
break;
case T_STRING:
s->param.bind[i].buffer_type = MYSQL_TYPE_STRING;
- s->param.bind[i].buffer = RSTRING(argv[i])->ptr;
- s->param.bind[i].buffer_length = RSTRING(argv[i])->len;
- s->param.length[i] = RSTRING(argv[i])->len;
+ s->param.bind[i].buffer = RSTRING_PTR(argv[i]);
+ s->param.bind[i].buffer_length = RSTRING_LEN(argv[i]);
+ s->param.length[i] = RSTRING_LEN(argv[i]);
s->param.bind[i].length = &(s->param.length[i]);
break;
default:
@@ -1499,7 +1509,7 @@
unsigned int n;
check_stmt_closed(obj);
n = mysql_stmt_field_count(s->stmt);
- return INT2NUM(n);
+ return UINT2NUM(n);
}
/* free_result() */
@@ -1519,7 +1529,7 @@
my_ulonglong n;
check_stmt_closed(obj);
n = mysql_stmt_insert_id(s->stmt);
- return INT2NUM(n);
+ return UINT2NUM(n);
}
/* num_rows() */
@@ -1529,7 +1539,7 @@
my_ulonglong n;
check_stmt_closed(obj);
n = mysql_stmt_num_rows(s->stmt);
- return INT2NUM(n);
+ return UINT2NUM(n);
}
/* param_count() */
@@ -1539,7 +1549,7 @@
unsigned long n;
check_stmt_closed(obj);
n = mysql_stmt_param_count(s->stmt);
- return INT2NUM(n);
+ return UINT2NUM(n);
}
/* prepare(query) */
@@ -1594,7 +1604,7 @@
free_mysqlstmt_memory(s);
check_stmt_closed(obj);
Check_Type(query, T_STRING);
- if (mysql_stmt_prepare(s->stmt, RSTRING(query)->ptr, RSTRING(query)->len))
+ if (mysql_stmt_prepare(s->stmt, RSTRING_PTR(query), RSTRING_LEN(query)))
mysql_stmt_raise(s->stmt);
n = mysql_stmt_param_count(s->stmt);
@@ -1686,7 +1696,7 @@
if (mysql_stmt_bind_param(s->stmt, s->param.bind))
mysql_stmt_raise(s->stmt);
}
- if (mysql_stmt_send_long_data(s->stmt, c, RSTRING(data)->ptr, RSTRING(data)->len))
+ if (mysql_stmt_send_long_data(s->stmt, c, RSTRING_PTR(data), RSTRING_LEN(data)))
mysql_stmt_raise(s->stmt);
return obj;
}