Author: aandrejevic
Date: Thu Jun 11 21:52:46 2015
New Revision: 68107
URL: http://svn.reactos.org/svn/reactos?rev=68107&view=rev
Log:
[FAST486]
The VM flag must be cleared before loading the new stack segment on a return
from v86 mode.
Modified:
trunk/reactos/lib/fast486/common.c
Modified: trunk/reactos/lib/fast486/common.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fast486/common.c?rev=6…
==============================================================================
--- trunk/reactos/lib/fast486/common.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fast486/common.c [iso-8859-1] Thu Jun 11 21:52:46 2015
@@ -339,6 +339,9 @@
/* Switch to the new privilege level */
State->Cpl = GET_SEGMENT_RPL(IdtEntry->Selector);
+ /* Clear the VM flag */
+ State->Flags.Vm = FALSE;
+
/* Check the new (higher) privilege level */
switch (State->Cpl)
{
@@ -404,12 +407,6 @@
}
State->GeneralRegs[FAST486_REG_ESP].Long = NewEsp;
-
- if (State->Flags.Vm)
- {
- /* Clear the VM flag */
- State->Flags.Vm = FALSE;
- }
}
/* Load new CS */
Author: cfinck
Date: Wed Jun 10 21:49:49 2015
New Revision: 68104
URL: http://svn.reactos.org/svn/reactos?rev=68104&view=rev
Log:
[LOCALSPL_APITEST]
It's only the second disabled test, which is causing trouble for us, so reactivate the first one.
This also confirms that the problem is not related to SEH.
Modified:
branches/colins-printing-for-freedom/rostests/apitests/localspl/dll/fpEnumPrinters.c
Modified: branches/colins-printing-for-freedom/rostests/apitests/localspl/dll/fpEnumPrinters.c
URL: http://svn.reactos.org/svn/reactos/branches/colins-printing-for-freedom/ros…
==============================================================================
--- branches/colins-printing-for-freedom/rostests/apitests/localspl/dll/fpEnumPrinters.c [iso-8859-1] (original)
+++ branches/colins-printing-for-freedom/rostests/apitests/localspl/dll/fpEnumPrinters.c [iso-8859-1] Wed Jun 10 21:49:49 2015
@@ -88,9 +88,6 @@
// In contrast to EnumPrintersW, which only accepts levels 0, 1, 2, 4 and 5, localspl returns information for level 0 to 7.
for (i = 0; i <= 7; i++)
{
- // FIXME: For some reason, using SEH here works only once.
- // We experience a hang in the testing process when you run the test again for a second time without restarting spoolsv.
-#if 0
// Try with no valid arguments at all.
// This scenario is usually caugt by RPC, so it just raises an exception here.
_SEH2_TRY
@@ -105,7 +102,6 @@
_SEH2_END;
ok(dwReturned == EXCEPTION_ACCESS_VIOLATION, "dwReturned is %lu for Level %lu!\n", dwReturned, i);
-#endif
// Now get the required buffer size.
cbNeeded = 0xDEADBEEF;
@@ -116,6 +112,7 @@
ok(cbNeeded > 0, "cbNeeded is 0 for Level %lu!\n", i);
ok(dwReturned == 0, "dwReturned is %lu for Level %lu!\n", dwReturned, i);
+ // This test corrupts something inside spoolsv so that it's only runnable once without restarting spoolsv. Therefore it's disabled.
#if 0
// Now provide the demanded size, but no buffer. This also mustn't touch cbNeeded.
// This scenario is also caught by RPC and we just have an exception here.