Re: [PATCH 1/2] oleaut32/tests: Don't take the size of a pointer (Clang).
Hello Charles, On 09/18/2012 07:51 AM, Charles Davis wrote:
From: Charles Davis <cdavis(a)mymail.mines.edu>
Contrary to what a novice C programmer might expect, when you declare an array parameter to a function, what you actually get is a pointer. Therefore, using sizeof() on the parameter will return the size of a pointer, and not 8*sizeof(UINT) as was intended here. Since the array was please fix it in a way to not confuse a novice C programmer; e.g. passing it a pointer to a MYSTRUCT. That way you can avoid the magic constant 8 too.
explicitly declared as being 8 elements long, just use the number 8 in the for loop instead.
--- dlls/oleaut32/tests/tmarshal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c index be8ef94..ad56123 100644 --- a/dlls/oleaut32/tests/tmarshal.c +++ b/dlls/oleaut32/tests/tmarshal.c @@ -596,10 +596,10 @@ static HRESULT WINAPI Widget_VarArg( }
-static BOOL mystruct_uint_ordered(UINT uarr[8]) +static BOOL mystruct_uint_ordered(UINT uarr[]) { int i; - for (i = 0; i < sizeof(uarr) / sizeof(uarr[0]); i++) + for (i = 0; i < 8; i++) if (uarr[i] != i) return 0;
thanks bye michael
participants (1)
-
Michael Stefaniuc