From: Tilman Sauerbeck Date: Thu, 7 Apr 2005 18:27:26 +0000 (+0000) Subject: Fixed crash in key events. X-Git-Url: http://git.code-monkey.de/?p=ruby-evas.git;a=commitdiff_plain;h=c7eaf5d1f6557b05c3fcc5660709c01332b13a6a Fixed crash in key events. --- diff --git a/src/rb_evas_object_events.c b/src/rb_evas_object_events.c index dc94a48..f5e0c50 100644 --- a/src/rb_evas_object_events.c +++ b/src/rb_evas_object_events.c @@ -1,5 +1,5 @@ /* - * $Id: rb_evas_object_events.c 306 2005-03-23 17:29:37Z tilman $ + * $Id: rb_evas_object_events.c 315 2005-04-07 18:27:26Z tilman $ * * Copyright (C) 2005 Tilman Sauerbeck (tilman at code-monkey de) * @@ -74,6 +74,9 @@ #define CALLBACK_REGISTER2(name) \ rb_define_method (cEvasObject, "on_"#name, c_on_##name, 0); +#define TO_STR(s) \ + (s) ? rb_str_new2 ((s)) : Qnil + static VALUE event_classes, cPos; static VALUE c_ev_mouse_in_init (VALUE self, VALUE ev) @@ -191,10 +194,10 @@ static VALUE c_ev_key_down_init (VALUE self, VALUE ev) { Evas_Event_Key_Down *e = (Evas_Event_Key_Down *) ev; - rb_iv_set (self, "@keyname", rb_str_new2 (e->keyname)); - rb_iv_set (self, "@key", rb_str_new2 (e->key)); - rb_iv_set (self, "@string", rb_str_new2 (e->string)); - rb_iv_set (self, "@compose", rb_str_new2 (e->compose)); + rb_iv_set (self, "@keyname", TO_STR (e->keyname)); + rb_iv_set (self, "@key", TO_STR (e->key)); + rb_iv_set (self, "@string", TO_STR (e->string)); + rb_iv_set (self, "@compose", TO_STR (e->compose)); return self; } @@ -203,10 +206,10 @@ static VALUE c_ev_key_up_init (VALUE self, VALUE ev) { Evas_Event_Key_Up *e = (Evas_Event_Key_Up *) ev; - rb_iv_set (self, "@keyname", rb_str_new2 (e->keyname)); - rb_iv_set (self, "@key", rb_str_new2 (e->key)); - rb_iv_set (self, "@string", rb_str_new2 (e->string)); - rb_iv_set (self, "@compose", rb_str_new2 (e->compose)); + rb_iv_set (self, "@keyname", TO_STR (e->keyname)); + rb_iv_set (self, "@key", TO_STR (e->key)); + rb_iv_set (self, "@string", TO_STR (e->string)); + rb_iv_set (self, "@compose", TO_STR (e->compose)); return self; }