Jason Millard wine@gitlab.winehq.org wrote:
diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c index b3be3bea6cf..94c768c6e1e 100644 --- a/dlls/vbscript/interp.c +++ b/dlls/vbscript/interp.c @@ -1375,24 +1375,31 @@ static HRESULT interp_redim_preserve(exec_ctx_t *ctx) if(array == NULL || array->cDims == 0) { /* can initially allocate the array */ array = SafeArrayCreate(VT_VARIANT, dim_cnt, bounds);
VariantClear(v);
V_VT(v) = VT_ARRAY|VT_VARIANT;
V_ARRAY(v) = array;
return S_OK;
if(!array)
hres = E_OUTOFMEMORY;
if(SUCCEEDED(hres)) {
VariantClear(v);
V_VT(v) = VT_ARRAY|VT_VARIANT;
V_ARRAY(v) = array;
}
It's not clear what kind of failure if(SUCCEEDED(hres)) is supposed to check for. Probably this part would look more natural with if (!array) hres = E_OUTOFMEMORY; else { VariantClear(v); V_VT(v) = VT_ARRAY|VT_VARIANT; V_ARRAY(v) = array; }