Windows does. Why shouldn't we? It's a non-documented API.
Best regards, Alex Ionescu
On Sat, Oct 11, 2014 at 1:52 AM, tkreuzer@svn.reactos.org wrote:
Author: tkreuzer Date: Sat Oct 11 08:52:33 2014 New Revision: 64658
URL: http://svn.reactos.org/svn/reactos?rev=64658&view=rev Log: [NTDLL] Don't assert that the caller of exported APIs passes correct parameters.
Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c
Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/ldrapi.c?rev=...
============================================================================== --- trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] Sat Oct 11 08:52:33 2014 @@ -209,9 +209,6 @@ /* A normal failure */ return STATUS_INVALID_PARAMETER_3; }
- /* Do or Do Not. There is no Try */
- ASSERT((Disposition != NULL) || !(Flags &
LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY));
/* If the flag is set, make sure we have a valid pointer to use */ if ((Flags & LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY) && !(Disposition))
Because it causes havoc on our testbot. Question to you: Why should we? We are replicating "normal" Windows behavior, not Windows debugging code.
Am 11.10.2014 18:45, schrieb Alex Ionescu:
Windows does. Why shouldn't we? It's a non-documented API.
Best regards, Alex Ionescu
On Sat, Oct 11, 2014 at 1:52 AM, <tkreuzer@svn.reactos.org mailto:tkreuzer@svn.reactos.org> wrote:
Author: tkreuzer Date: Sat Oct 11 08:52:33 2014 New Revision: 64658 URL: http://svn.reactos.org/svn/reactos?rev=64658&view=rev Log: [NTDLL] Don't assert that the caller of exported APIs passes correct parameters. Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/ldrapi.c?rev=64658&r1=64657&r2=64658&view=diff ============================================================================== --- trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] Sat Oct 11 08:52:33 2014 @@ -209,9 +209,6 @@ /* A normal failure */ return STATUS_INVALID_PARAMETER_3; } - - /* Do or Do Not. There is no Try */ - ASSERT((Disposition != NULL) || !(Flags & LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY)); /* If the flag is set, make sure we have a valid pointer to use */ if ((Flags & LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY) && !(Disposition))
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
So the testbot should stop giving invalid values -- or are you saying that this would ASSERT on Windows too and also kill Testbot? Then now we are clearly changing Windows behavior.
Best regards, Alex Ionescu
On Sat, Oct 11, 2014 at 4:59 PM, Timo Kreuzer timo.kreuzer@web.de wrote:
Because it causes havoc on our testbot. Question to you: Why should we? We are replicating "normal" Windows behavior, not Windows debugging code.
Am 11.10.2014 18:45, schrieb Alex Ionescu:
Windows does. Why shouldn't we? It's a non-documented API.
Best regards, Alex Ionescu
On Sat, Oct 11, 2014 at 1:52 AM, tkreuzer@svn.reactos.org wrote:
Author: tkreuzer Date: Sat Oct 11 08:52:33 2014 New Revision: 64658
URL: http://svn.reactos.org/svn/reactos?rev=64658&view=rev Log: [NTDLL] Don't assert that the caller of exported APIs passes correct parameters.
Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c
Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/ldrapi.c?rev=...
============================================================================== --- trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] Sat Oct 11 08:52:33 2014 @@ -209,9 +209,6 @@ /* A normal failure */ return STATUS_INVALID_PARAMETER_3; }
- /* Do or Do Not. There is no Try */
- ASSERT((Disposition != NULL) || !(Flags &
LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY));
/* If the flag is set, make sure we have a valid pointer to use */ if ((Flags & LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY) && !(Disposition))
Ros-dev mailing listRos-dev@reactos.orghttp://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Wine tests are written against free builds of Windows, nobody tests against the checked version (and I highly doubt they'd accept fixes with that reasoning). So we (and Wine) are making a trade-off here, giving up an assertion in favor of ensuring the correctness of the release build's behavior. That seems more than reasonable to me.
An alternative would be to introduce a third build type to distinguish our "checked build for daily use" from a "checked build that behaves like Windows's." I don't see much benefit in doing that at this point though.
On 2014-10-12 06:19, Alex Ionescu wrote:
So the testbot should stop giving invalid values -- or are you saying that this would ASSERT on Windows too and also kill Testbot? Then now we are clearly changing Windows behavior.
Best regards, Alex Ionescu
On Sat, Oct 11, 2014 at 4:59 PM, Timo Kreuzer timo.kreuzer@web.de wrote:
Because it causes havoc on our testbot. Question to you: Why should we? We are replicating "normal" Windows behavior, not Windows debugging code.
Am 11.10.2014 18:45, schrieb Alex Ionescu:
Windows does. Why shouldn't we? It's a non-documented API.
Best regards, Alex Ionescu
On Sat, Oct 11, 2014 at 1:52 AM, tkreuzer@svn.reactos.org wrote:
Author: tkreuzer Date: Sat Oct 11 08:52:33 2014 New Revision: 64658
URL: http://svn.reactos.org/svn/reactos?rev=64658&view=rev Log: [NTDLL] Don't assert that the caller of exported APIs passes correct parameters.
Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c
Modified: trunk/reactos/dll/ntdll/ldr/ldrapi.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/ldrapi.c?rev=...
============================================================================== --- trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/ldr/ldrapi.c [iso-8859-1] Sat Oct 11 08:52:33 2014 @@ -209,9 +209,6 @@ /* A normal failure */ return STATUS_INVALID_PARAMETER_3; }
- /* Do or Do Not. There is no Try */
- ASSERT((Disposition != NULL) || !(Flags &
LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY));
/* If the flag is set, make sure we have a valid pointer to use */ if ((Flags & LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY) && !(Disposition))