summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/com/COM.c9
-rw-r--r--ext/rpc/com/com_wrapper.c9
2 files changed, 18 insertions, 0 deletions
diff --git a/ext/com/COM.c b/ext/com/COM.c
index 0063f426b1..aeae84ddcf 100644
--- a/ext/com/COM.c
+++ b/ext/com/COM.c
@@ -741,6 +741,15 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
}
}
+ /* return a single element if next() was called without count */
+ if((arg_count == 0) && (count == 1))
+ {
+ long index[] = {1};
+
+ SafeArrayGetElement(pSA, index, var_result);
+ SafeArrayDestroy(pSA);
+ }
+
return SUCCESS;
}
else if(C_HASENUM(obj) && strstr(Z_STRVAL_P(function_name), "reset"))
diff --git a/ext/rpc/com/com_wrapper.c b/ext/rpc/com/com_wrapper.c
index 0063f426b1..aeae84ddcf 100644
--- a/ext/rpc/com/com_wrapper.c
+++ b/ext/rpc/com/com_wrapper.c
@@ -741,6 +741,15 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
}
}
+ /* return a single element if next() was called without count */
+ if((arg_count == 0) && (count == 1))
+ {
+ long index[] = {1};
+
+ SafeArrayGetElement(pSA, index, var_result);
+ SafeArrayDestroy(pSA);
+ }
+
return SUCCESS;
}
else if(C_HASENUM(obj) && strstr(Z_STRVAL_P(function_name), "reset"))