summaryrefslogtreecommitdiff
path: root/ext/win32ole/win32ole.c
diff options
context:
space:
mode:
authorsuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-01 09:05:08 +0000
committersuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-01 09:05:08 +0000
commit2bdd9d6eba7f2088e017ae80e0029c236eeb47e0 (patch)
tree495cb40485a055756292d2f34e0e04f1ffa14a0c /ext/win32ole/win32ole.c
parent0cf4abaa278e338f3aa6e4633f06ef2da934ccf8 (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.c7
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);