[#1147] Copying RVALUE — why the lucky stiff <ruby-core@...>

Hello, everyone. Hope you are all doing well.

18 messages 2003/06/17
[#1155] Re: Copying RVALUE — matz@... (Yukihiro Matsumoto) 2003/06/20

Hi,

[#1157] Re: Copying RVALUE — why the lucky stiff <ruby-core@...> 2003/06/20

Yukihiro Matsumoto (matz@ruby-lang.org) wrote:

[#1173] class.c code cleanup (rb_class_*_instance_methods) — Matthew Dempsky <jivera@...>

Hi, I'm new to this mailing list so I don't know the procedure for

15 messages 2003/06/22
[#1174] Re: [Patch] class.c code cleanup (rb_class_*_instance_methods) — nobu.nokada@... 2003/06/22

Hi,

[#1175] Re: [Patch] class.c code cleanup (rb_class_*_instance_methods) — Matthew Dempsky <jivera@...> 2003/06/22

On Sun, 2003-06-22 at 05:36, nobu.nokada@softhome.net wrote:

[#1176] Re: [Patch] class.c code cleanup (rb_class_*_instance_methods) — nobu.nokada@... 2003/06/22

Hi,

[#1193] Re: [Patch] class.c code cleanup (rb_class_*_instance_methods) — Matthew Dempsky <jivera@...> 2003/06/25

On Sun, 2003-06-22 at 07:41, nobu.nokada@softhome.net wrote:

[#1177] Re: In 1.8.0 nil.to_s is not the same as "" — ts <decoux@...>

14 messages 2003/06/22

Re: [Patch] class.c code cleanup (rb_class_*_instance_methods)

From: Matthew Dempsky <jivera@...>
Date: 2003-06-25 03:56:44 UTC
List: ruby-core #1193
On Sun, 2003-06-22 at 07:41, nobu.nokada@softhome.net wrote:
> You can get current method name by:
>   rb_id2name(rb_frame_last_func())

I rewrote the patch using exactly that to construct the strings.

> "from 1.8.1"?

I actually used "as of 1.8.1" because that seemed the clearest to me
(from didn't quite fit in my mind).  So, here's my second attempt at a
simple patch (eventually I'll have to get one right :)

-jivera

Attachments (1)

class.patch (2.36 KB, text/x-diff)
--- class-old.c	2003-06-20 02:11:40.000000000 -0500
+++ class.c	2003-06-24 22:52:58.000000000 -0500
@@ -549,18 +549,22 @@
     return ary;
 }
 
-VALUE
-rb_class_instance_methods(argc, argv, mod)
+static VALUE
+rb_generic_class_instance_methods(argc, argv, mod, func)
     int argc;
     VALUE *argv;
     VALUE mod;
+    void (*func)();
 {
     VALUE recur;
 
     rb_scan_args(argc, argv, "01", &recur);
     if (argc == 0) {
 #if RUBY_VERSION_CODE < 181
-	rb_warn("instance_methods parameter will default to 'true' after 1.8.1");
+	char buffer[BUFSIZ];
+	strcpy(buffer, rb_id2name(rb_frame_last_func()));
+	strcat(buffer, " parameter will default to 'true' as of 1.8.1");
+	rb_warn(buffer);
 #else
 	recur = Qtrue;
 #endif
@@ -569,22 +573,21 @@
 }
 
 VALUE
-rb_class_protected_instance_methods(argc, argv, mod)
+rb_class_instance_methods(argc, argv, mod)
     int argc;
     VALUE *argv;
     VALUE mod;
 {
-    VALUE recur;
+    return rb_generic_class_instance_methods(argc, argv, mod, ins_methods_i);
+}
 
-    rb_scan_args(argc, argv, "01", &recur);
-    if (argc == 0) {
-#if RUBY_VERSION_CODE < 181
-	rb_warn("protected_instance_methods parameter will default to 'true' after 1.8.1");
-#else
-	recur = Qtrue;
-#endif
-    }
-    return method_list(mod, RTEST(recur), ins_methods_prot_i);
+VALUE
+rb_class_protected_instance_methods(argc, argv, mod)
+    int argc;
+    VALUE *argv;
+    VALUE mod;
+{
+    return rb_generic_class_instance_methods(argc, argv, mod, ins_methods_prot_i);
 }
 
 VALUE
@@ -593,17 +596,7 @@
     VALUE *argv;
     VALUE mod;
 {
-    VALUE recur;
-
-    rb_scan_args(argc, argv, "01", &recur);
-    if (argc == 0) {
-#if RUBY_VERSION_CODE < 181
-	rb_warn("private_instance_methods parameter will default to 'true' after 1.8.1");
-#else
-	recur = Qtrue;
-#endif
-    }
-    return method_list(mod, RTEST(recur), ins_methods_priv_i);
+    return rb_generic_class_instance_methods(argc, argv, mod, ins_methods_priv_i);
 }
 
 VALUE
@@ -612,17 +605,7 @@
     VALUE *argv;
     VALUE mod;
 {
-    VALUE recur;
-
-    rb_scan_args(argc, argv, "01", &recur);
-    if (argc == 0) {
-#if RUBY_VERSION_CODE < 181
-	rb_warn("public_instance_methods parameter will default to 'true' after 1.8.1");
-#else
-	recur = Qtrue;
-#endif
-    }
-    return method_list(mod, RTEST(recur), ins_methods_pub_i);
+    return rb_generic_class_instance_methods(argc, argv, mod, ins_methods_pub_i);
 }
 
 VALUE

In This Thread