diff options
author | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-01 09:05:08 +0000 |
---|---|---|
committer | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-01 09:05:08 +0000 |
commit | 2bdd9d6eba7f2088e017ae80e0029c236eeb47e0 (patch) | |
tree | 495cb40485a055756292d2f34e0e04f1ffa14a0c /ext/win32ole/win32ole.c | |
parent | 0cf4abaa278e338f3aa6e4633f06ef2da934ccf8 (diff) |
ext/win32ole/win32ole.c (add_event_call_back): should not
delete event handler when the event name is not entried.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/win32ole/win32ole.c')
-rw-r--r-- | ext/win32ole/win32ole.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 2a89dfb8a6..ba4fc4b921 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -79,7 +79,7 @@ #define WC2VSTR(x) ole_wc2vstr((x), TRUE) -#define WIN32OLE_VERSION "0.7.6" +#define WIN32OLE_VERSION "0.7.7" typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX) (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); @@ -6352,7 +6352,6 @@ STDMETHODIMP EVENTSINK_Invoke( else { result = rb_apply(handler, rb_intern("call"), args); } - if (pvarResult) { ole_val2variant(result, pvarResult); } @@ -6739,14 +6738,14 @@ fev_s_msg_loop(VALUE klass) static void add_event_call_back(VALUE obj, VALUE event, VALUE data) { - long at; + long at = -1; VALUE events = rb_ivar_get(obj, id_events); if (NIL_P(events) || TYPE(events) != T_ARRAY) { events = rb_ary_new(); rb_ivar_set(obj, id_events, events); } at = ole_search_event_at(events, event); - if (at >= -1) { + if (at >= 0) { rb_ary_delete_at(events, at); } rb_ary_push(events, data); |