summaryrefslogtreecommitdiff
path: root/ext/win32ole/win32ole.c
diff options
context:
space:
mode:
authorsuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-11 13:45:57 +0000
committersuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-11 13:45:57 +0000
commit777ad4ee755ceb534e13184a69b3ca82e86e9521 (patch)
tree0018f886361b05f0cb005dcd698a452bfc655d4c /ext/win32ole/win32ole.c
parent027eb16fca5addb840080b4b58b740b09eb865be (diff)
* ext/win32ole/win32ole.c (ole_ptrtype2val): ole_type, ole_type_detail
should not return "VARIANT,VARIANT". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/win32ole/win32ole.c')
-rw-r--r--ext/win32ole/win32ole.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c
index 72630a1e0f..27dfbba6b7 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.4"
+#define WIN32OLE_VERSION "0.9.5"
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
@@ -3927,14 +3927,10 @@ ole_ptrtype2val(ITypeInfo *pTypeInfo, TYPEDESC *pTypeDesc, VALUE typedetails)
{
TYPEDESC *p = pTypeDesc;
VALUE type = rb_str_new2("");
- while(p->vt == VT_PTR || p->vt == VT_SAFEARRAY) {
+
+ if (p->vt == VT_PTR || p->vt == VT_SAFEARRAY) {
p = V_UNION1(p, lptdesc);
- if(strlen(StringValuePtr(type)) == 0) {
- type = ole_typedesc2val(pTypeInfo, p, typedetails);
- } else {
- rb_str_cat(type, ",", 1);
- rb_str_concat(type, ole_typedesc2val(pTypeInfo, p, typedetails));
- }
+ type = ole_typedesc2val(pTypeInfo, p, typedetails);
}
return type;
}