Author: tkreuzer
Date: Sat Aug 21 22:00:50 2010
New Revision: 48582
URL: http://svn.reactos.org/svn/reactos?rev=48582&view=rev
Log:
[WIN32K]
Use the object type index, not the shifted full object type to decide what to do with an object in NtGdiDeleteObjectApp. Fixes leaking derived types such as pens.
Modified:
trunk/reactos/subsystems/win32/win32k/objects/dclife.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/dclife.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dclife.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dclife.c [iso-8859-1] Sat Aug 21 22:00:50 2010
@@ -773,7 +773,7 @@
if (IsObjectDead((HGDIOBJ)DCHandle)) return TRUE;
- ObjType = GDI_HANDLE_GET_TYPE(DCHandle) >> GDI_ENTRY_UPPER_SHIFT;
+ ObjType = GDI_OBJECT_GET_TYPE_INDEX((ULONG_PTR)DCHandle);
if (GreGetObjectOwner( DCHandle, ObjType))
{
Author: dreimer
Date: Sat Aug 21 14:30:38 2010
New Revision: 48578
URL: http://svn.reactos.org/svn/reactos?rev=48578&view=rev
Log:
Added way to change the ccache dir. define a _ROSBE_CCACHE_DIR Variable and it will be used instead of the default path
Modified:
trunk/tools/RosBE/RosBE-Windows/Powershell/RosBE.ps1
trunk/tools/RosBE/RosBE-Windows/Root/RosBE.cmd
Modified: trunk/tools/RosBE/RosBE-Windows/Powershell/RosBE.ps1
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Powershe…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Powershell/RosBE.ps1 [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Powershell/RosBE.ps1 [iso-8859-1] Sat Aug 21 14:30:38 2010
@@ -77,7 +77,12 @@
# To modify the number used, see the cpucount usage for getting to know about the possible options
$global:_ROSBE_MAKEX_JOBS = (gwmi win32_processor).numberofcores + 1
-$ENV:CCACHE_DIR = "$ENV:APPDATA\RosBE\.ccache"
+if ("$ENV:_ROSBE_CCACHE_DIR" -eq "") {
+ $ENV:CCACHE_DIR = "$ENV:APPDATA\RosBE\.ccache"
+} else {
+ $ENV:CCACHE_DIR = "$_ROSBE_CCACHE_DIR"
+}
+
$ENV:C_INCLUDE_PATH = $null
$ENV:CPLUS_INCLUDE_PATH = $null
$ENV:LIBRARY_PATH = $null
Modified: trunk/tools/RosBE/RosBE-Windows/Root/RosBE.cmd
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Root/Ros…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Root/RosBE.cmd [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Root/RosBE.cmd [iso-8859-1] Sat Aug 21 14:30:38 2010
@@ -55,7 +55,12 @@
:: To modify the number used, see the cpucount usage for getting to know about the possible options
for /f "usebackq" %%i in (`"%_ROSBE_BASEDIR%\Tools\cpucount.exe" -x1`) do set _ROSBE_MAKEX_JOBS=%%i
-set CCACHE_DIR=%APPDATA%\RosBE\.ccache
+if "%_ROSBE_CCACHE_DIR%" == "" (
+ set CCACHE_DIR=%APPDATA%\RosBE\.ccache
+) else (
+ set CCACHE_DIR=%_ROSBE_CCACHE_DIR%
+)
+
set C_INCLUDE_PATH=
set CPLUS_INCLUDE_PATH=
set LIBRARY_PATH=
Author: cgutman
Date: Fri Aug 20 04:45:25 2010
New Revision: 48574
URL: http://svn.reactos.org/svn/reactos?rev=48574&view=rev
Log:
[NTOSKRNL]
- The trailing NULL is NOT included in the string length
- IopNotifyPlugPlayNotification needs a pointer to an actual GUID not a UNICODE_STRING
- The Power Manager can now see ACPI power devices again
- ROS will now do a graceful shutdown and power off if the power button is pressed and ACPI is enabled
Modified:
trunk/reactos/ntoskrnl/io/iomgr/deviface.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/deviface.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/deviface…
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/deviface.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/deviface.c [iso-8859-1] Fri Aug 20 04:45:25 2010
@@ -731,11 +731,6 @@
}
KeyName.Length = KeyName.MaximumLength = (USHORT)bip->DataLength - 4 * sizeof(WCHAR);
KeyName.Buffer = &((PWSTR)bip->Data)[4];
- if (KeyName.Length && KeyName.Buffer[KeyName.Length / sizeof(WCHAR)] == UNICODE_NULL)
- {
- /* Remove trailing NULL */
- KeyName.Length -= sizeof(WCHAR);
- }
/* Add new symbolic link to symbolic link list */
if (ReturnBuffer.Length + KeyName.Length + sizeof(WCHAR) > ReturnBuffer.MaximumLength)
@@ -1232,6 +1227,7 @@
UNICODE_STRING KeyName;
OBJECT_ATTRIBUTES ObjectAttributes;
ULONG LinkedValue;
+ GUID DeviceGuid;
if (SymbolicLinkName == NULL)
return STATUS_INVALID_PARAMETER_1;
@@ -1309,13 +1305,20 @@
DPRINT1("IoGetDeviceObjectPointer() failed with status 0x%08lx\n", Status);
return Status;
}
+
+ Status = RtlGUIDFromString(&GuidString, &DeviceGuid);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("RtlGUIDFromString() failed with status 0x%08lx\n", Status);
+ return Status;
+ }
EventGuid = Enable ? &GUID_DEVICE_INTERFACE_ARRIVAL : &GUID_DEVICE_INTERFACE_REMOVAL;
IopNotifyPlugPlayNotification(
PhysicalDeviceObject,
EventCategoryDeviceInterfaceChange,
EventGuid,
- &GuidString,
+ &DeviceGuid,
(PVOID)SymbolicLinkName);
ObDereferenceObject(FileObject);