Author: jgardou
Date: Thu Oct 23 09:32:46 2014
New Revision: 64914
URL: http://svn.reactos.org/svn/reactos?rev=64914&view=rev
Log:
[WIN32K]
- Reference cursor and icon objects when copying a class from one heap to another.
CORE-7575
Modified:
trunk/reactos/win32ss/user/ntuser/class.c
Modified: trunk/reactos/win32ss/user/ntuser/class.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/class.…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/class.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/class.c [iso-8859-1] Thu Oct 23 09:32:46 2014
@@ -838,6 +838,16 @@
NewClass->rpdeskParent = NULL;
NewClass->pclsBase = NewClass;
+#ifdef NEW_CURSORICON
+ if (NewClass->spcur)
+ UserReferenceObject(NewClass->spcur);
+ if (NewClass->spicn)
+ UserReferenceObject(NewClass->spicn);
+ if (NewClass->spicnSm)
+ UserReferenceObject(NewClass->spicnSm);
+#endif
+
+
/* Replace the class in the list */
(void)InterlockedExchangePointer((PVOID*)*ClassLinkPtr,
NewClass);
Author: tkreuzer
Date: Thu Oct 23 09:05:32 2014
New Revision: 64909
URL: http://svn.reactos.org/svn/reactos?rev=64909&view=rev
Log:
[CRT]
Do not raise an exception in _invalid_parameter, which is only done in later MSVCRTs. Wine uses a symbolic constant (_MSVCR_VER) to handle this and other things and compiles their CRT code multiple times. As an alternative we could use a global version variable to avoid recompiling, once we implement other CRT dlls.
CORE-8670 #resolve
Modified:
trunk/reactos/lib/sdk/crt/stdlib/errno.c
Modified: trunk/reactos/lib/sdk/crt/stdlib/errno.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/stdlib/errno.c…
==============================================================================
--- trunk/reactos/lib/sdk/crt/stdlib/errno.c [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/stdlib/errno.c [iso-8859-1] Thu Oct 23 09:05:32 2014
@@ -141,7 +141,9 @@
else
{
ERR( "%s:%u %s: %s %lx\n", debugstr_w(file), line, debugstr_w(func), debugstr_w(expr), arg );
+#if _MSVCR_VER > 0 // FIXME: possible improvement: use a global variable in the DLL
RaiseException( STATUS_INVALID_CRUNTIME_PARAMETER, EXCEPTION_NONCONTINUABLE, 0, NULL );
+#endif
}
}