Rob Shearman : rpcrt4: Fix the return value of NdrFullPointerQueryRefId for a pointer ID of 0.
Module: wine Branch: master Commit: 51dbc8d06b65a45d4507b6ad15d78c4e24af9689 URL: http://source.winehq.org/git/wine.git/?a=commit;h=51dbc8d06b65a45d4507b6ad15... Author: Rob Shearman <robertshearman(a)gmail.com> Date: Wed Nov 18 00:25:20 2009 +0000 rpcrt4: Fix the return value of NdrFullPointerQueryRefId for a pointer ID of 0. --- dlls/rpcrt4/ndr_fullpointer.c | 3 +++ dlls/rpcrt4/tests/ndr_marshall.c | 1 - 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/dlls/rpcrt4/ndr_fullpointer.c b/dlls/rpcrt4/ndr_fullpointer.c index b686683..2bbd2b2 100644 --- a/dlls/rpcrt4/ndr_fullpointer.c +++ b/dlls/rpcrt4/ndr_fullpointer.c @@ -161,6 +161,9 @@ int WINAPI NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES pXlatTables, { TRACE("(%p, 0x%x, %d, %p)\n", pXlatTables, RefId, QueryType, ppPointer); + if (!RefId) + return 1; + expand_pointer_table_if_necessary(pXlatTables, RefId); pXlatTables->NextRefId = max(RefId + 1, pXlatTables->NextRefId); diff --git a/dlls/rpcrt4/tests/ndr_marshall.c b/dlls/rpcrt4/tests/ndr_marshall.c index dbf29a5..91f3040 100644 --- a/dlls/rpcrt4/tests/ndr_marshall.c +++ b/dlls/rpcrt4/tests/ndr_marshall.c @@ -1047,7 +1047,6 @@ static void test_fullpointer_xlat(void) /* "unmarshaling" phase */ ret = NdrFullPointerQueryRefId(pXlatTables, 0x0, 0, &Pointer); - todo_wine ok(ret == 1, "ret should be 1 instead of 0x%x\n", ret); ret = NdrFullPointerQueryRefId(pXlatTables, 0x2, 0, &Pointer);
participants (1)
-
Alexandre Julliard