diff options
author | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-20 12:25:40 +0000 |
---|---|---|
committer | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-20 12:25:40 +0000 |
commit | 975ce3add3c95ddb53351de9b90e71ed8e1aacd0 (patch) | |
tree | 0c98a7ea2332d5e3584f8c3e41f9d7b4fc7e2a68 | |
parent | 9f6cd833e602cf37bac7226a3ea6a46eb0d532a1 (diff) | |
download | ruby-975ce3add3c95ddb53351de9b90e71ed8e1aacd0.tar.gz |
* ext/win32ole/win32ole.c (installed_code_page_proc,
ole_variant2val): small refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/win32ole/win32ole.c | 11 |
2 files changed, 11 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Tue Feb 20 21:19:29 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp> + + * ext/win32ole/win32ole.c (installed_code_page_proc, + ole_variant2val): small refactoring. + Tue Feb 20 15:11:42 2007 Koichi Sasada <ko1@atdot.net> * eval.c, vm.c, yarvcore.h: move definition of rb_call_super() to diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 7b31649c84..95a1387da6 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -80,7 +80,7 @@ #define WC2VSTR(x) ole_wc2vstr((x), TRUE) -#define WIN32OLE_VERSION "0.9.7" +#define WIN32OLE_VERSION "0.9.8" typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX) (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); @@ -1535,7 +1535,7 @@ ole_variant2val(VARIANT *pvar) if(V_ISARRAY(pvar)) { SAFEARRAY *psa = V_ISBYREF(pvar) ? *V_ARRAYREF(pvar) : V_ARRAY(pvar); - long i; + UINT i = 0; long *pid, *plb, *pub; VARIANT variant; VALUE val; @@ -1566,14 +1566,15 @@ ole_variant2val(VARIANT *pvar) hr = SafeArrayLock(psa); if (SUCCEEDED(hr)) { obj = rb_ary_new(); - while (i >= 0) { + i = 0; + while (i < dim) { ary_new_dim(obj, pid, plb, dim); hr = SafeArrayPtrOfIndex(psa, pid, &V_BYREF(&variant)); if (SUCCEEDED(hr)) { val = ole_variant2val(&variant); ary_store_dim(obj, pid, plb, dim, val); } - for (i = dim-1 ; i >= 0 ; --i) { + for (i = 0; i < dim; ++i) { if (++pid[i] <= pub[i]) break; pid[i] = plb[i]; @@ -2396,7 +2397,7 @@ fole_s_get_code_page(VALUE self) static BOOL CALLBACK installed_code_page_proc(LPTSTR str) { - if (atol(str) == g_cp_to_check) { + if (strtoul(str, NULL, 10) == g_cp_to_check) { g_cp_installed = TRUE; return FALSE; } |