Hi,

Ryan Davis wrote:
> The following attachment, when run, shows the following behavior:
> 
>> % ruby -v ./add_event_hook_weirdness.rb
>> ruby 1.8.3 (2005-06-17) [powerpc-darwin8.1.0]
>> ./add_event_hook_weirdness.rb:620:in `hash': undefined method  `hash'
>> for #<MyMod:0x32c0c4> (NoMethodError)
>>     from ./add_event_hook_weirdness.rb:620:in `y'
>>     from ./add_event_hook_weirdness.rb:626
>>     from ./add_event_hook_weirdness.rb:625:in `times'
>>     from ./add_event_hook_weirdness.rb:625

Please apply this patch.

--- add_event_hook_weirdness.rb.orig    2005-06-17 19:10:25.055358488 +0900
+++ add_event_hook_weirdness.rb 2005-06-17 19:10:43.776512440 +0900
@@ -579,6 +579,14 @@
         {
           VALUE signature;

+          if (klass) {
+            if (TYPE(klass) == T_ICLASS) {
+                klass = RBASIC(klass)->klass;
+            }
+            else if (FL_TEST(klass, FL_SINGLETON)) {
+                klass = self;
+            }
+          }
           signature = rb_ary_new2(2);
           rb_ary_store(signature, 0, klass);
           rb_ary_store(signature, 1, ID2SYM(mid));


Maybe, EXEC_EVENT_HOOK() should do this.

Shugo