Author: dreimer
Date: Sun May 9 15:15:33 2010
New Revision: 47145
URL: http://svn.reactos.org/svn/reactos?rev=47145&view=rev
Log:
Bug 5369: Patch and Enhancements for RosBE: Wrong SSVN update behavior.
Partially applied:
- The EOC to skip rosapps and rostests was not applied, because it might be possible that rosapps or rostests need a update anyway.
- Fixed a logical error in %_BUILDBOT_SVNSKIPMAINTRUNK% if condition.
Modified:
trunk/tools/RosBE/RosBE-Windows/Powershell/sSVN.ps1
trunk/tools/RosBE/RosBE-Windows/Root/sSVN.cmd
Modified: trunk/tools/RosBE/RosBE-Windows/Powershell/sSVN.ps1
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Powershe…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Powershell/sSVN.ps1 [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Powershell/sSVN.ps1 [iso-8859-1] Sun May 9 15:15:33 2010
@@ -30,11 +30,27 @@
$_ROSBE_SSVN_JOB = "update"
}
}
+ if ($OFFSVN -eq $ONSVN) {
+ "Your tree is up to date."
+ }
+
if ("$_ROSBE_SSVN_JOB" -eq "update") {
if ("$($arg[1])" -ne "") {
$temparg = $arg[1]
+
+ if ($temparg -eq $OFFSVN) {
+ "Your Local Repository is currently $temparg"
+ }
+ if ($temparg -lt $OFFSVN) {
+ "Downgrading to $temparg ..."
+ }
+ if ($temparg -gt $OFFSVN) {
+ "Updating to $temparg ..."
+ }
if ("$_BUILDBOT_SVNSKIPMAINTRUNK" -ne "1") {
IEX "& svn.exe update -r $temparg"
+ } else {
+ "Skipping ReactOS Trunk update."
}
if (Test-Path "modules\rosapps\.") {
Set-Location "modules\rosapps"
@@ -72,9 +88,6 @@
IEX "& svn.exe log -r $range"
}
}
- }
- if ($OFFSVN -eq $ONSVN) {
- "Your tree is up to date."
}
}
Modified: trunk/tools/RosBE/RosBE-Windows/Root/sSVN.cmd
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Root/sSV…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Root/sSVN.cmd [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Root/sSVN.cmd [iso-8859-1] Sun May 9 15:15:33 2010
@@ -28,7 +28,7 @@
echo This might take a while, so please be patient.
echo.
set _ROSBE_SSVN_JOB=update
- goto :UP
+ goto :UP
)
if /i "%1" == "cleanup" (
@@ -202,10 +202,27 @@
set /p UP="Please enter 'yes' or 'no': "
if /i "!UP!" == "yes" set _ROSBE_SSVN_JOB=update
)
- if "!_ROSBE_SSVN_JOB!" == "update" (
+ )
+ if !OFFSVN! equ !ONSVN! (
+ echo Your tree is up to date.
+ )
+
+ if "!_ROSBE_SSVN_JOB!" == "update" (
if not "%2" == "" (
+
+ if "%2" == "!OFFSVN!" (
+ echo Your Local Repository is currently %2
+ )
+ if "%2" LSS "!OFFSVN!" (
+ echo Downgrading to %2 ...
+ )
+ if "%2" GTR "!OFFSVN!" (
+ echo Updating to %2 ...
+ )
if not "%_BUILDBOT_SVNSKIPMAINTRUNK%" == "1" (
svn.exe update -r %2
+ ) else (
+ echo Skipping ReactOS Trunk update.
)
if exist "modules\rosapps\." (
cd "modules\rosapps"
@@ -243,9 +260,6 @@
svn.exe log -r !OFFSVN!:!ONSVN!
)
)
- if !OFFSVN! equ !ONSVN! (
- echo Your tree is up to date.
- )
goto EOC
Author: jgardou
Date: Sun May 9 15:07:47 2010
New Revision: 47143
URL: http://svn.reactos.org/svn/reactos?rev=47143&view=rev
Log:
[WIN32K]
- remove a comment which is not true anymore
[USER32]
- Create a bitmap which is compatible with the bitmap'we are copying in CreateSmallIcon
Icons are back in taskbar
Modified:
branches/reactos-yarotows/dll/win32/user32/windows/class.c
branches/reactos-yarotows/subsystems/win32/win32k/objects/bitmaps.c
Modified: branches/reactos-yarotows/dll/win32/user32/windows/class.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/dll/win32/user…
==============================================================================
--- branches/reactos-yarotows/dll/win32/user32/windows/class.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/dll/win32/user32/windows/class.c [iso-8859-1] Sun May 9 15:07:47 2010
@@ -289,7 +289,7 @@
}
return Ret;
}
- // Wine Class tests:
+ // Wine Class tests:
/* Edit controls are special - they return a wndproc handle when
GetWindowLongPtr is called with a different A/W.
On the other hand there is no W->A->W conversion so this control
@@ -809,7 +809,6 @@
int SmallIconWidth;
int SmallIconHeight;
BITMAP StdBitmapInfo;
- HDC hInfoDc = NULL;
HDC hSourceDc = NULL;
HDC hDestDc = NULL;
ICONINFO SmallInfo;
@@ -845,15 +844,6 @@
return StdIcon;
}
- /* Get a handle to a info DC and handles to DCs which can be used to
- select a bitmap into. This is done to avoid triggering a switch to
- graphics mode (if we're currently in text/blue screen mode) */
- hInfoDc = CreateICW(NULL, NULL, NULL, NULL);
- if (NULL == hInfoDc)
- {
- ERR("Failed to create info DC\n");
- goto cleanup;
- }
hSourceDc = CreateCompatibleDC(NULL);
if (NULL == hSourceDc)
{
@@ -873,7 +863,7 @@
ERR("Failed to select source color bitmap\n");
goto cleanup;
}
- SmallInfo.hbmColor = CreateCompatibleBitmap(hInfoDc, SmallIconWidth,
+ SmallInfo.hbmColor = CreateCompatibleBitmap(hSourceDc, SmallIconWidth,
SmallIconHeight);
if (NULL == SmallInfo.hbmColor)
{
@@ -899,8 +889,7 @@
ERR("Failed to select source mask bitmap\n");
goto cleanup;
}
- SmallInfo.hbmMask = CreateBitmap(SmallIconWidth, SmallIconHeight, 1, 1,
- NULL);
+ SmallInfo.hbmMask = CreateCompatibleBitmap(hSourceDc, SmallIconWidth, SmallIconHeight);
if (NULL == SmallInfo.hbmMask)
{
ERR("Failed to create mask bitmap\n");
@@ -953,10 +942,6 @@
if (NULL != hSourceDc)
{
DeleteDC(hSourceDc);
- }
- if (NULL != hInfoDc)
- {
- DeleteDC(hInfoDc);
}
return SmallIcon;
@@ -1048,9 +1033,9 @@
clsMenuName.pszClientAnsiMenuName = AnsiMenuName.Buffer;
clsMenuName.pwszClientUnicodeMenuName = MenuName.Buffer;
clsMenuName.pusMenuName = &MenuName;
-
+
Atom = NtUserRegisterClassExWOW( &WndClass,
- &ClassName,
+ &ClassName,
NULL, //PUNICODE_STRING ClsNVersion,
&clsMenuName,
fnID,
Modified: branches/reactos-yarotows/subsystems/win32/win32k/objects/bitmaps.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win…
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/objects/bitmaps.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/objects/bitmaps.c [iso-8859-1] Sun May 9 15:07:47 2010
@@ -166,19 +166,6 @@
{
if (Count == sizeof(BITMAP))
{
- /* We have a bitmap bug!!! W/O the HACK, we have white icons.
-
- MSDN Note: When a memory device context is created, it initially
- has a 1-by-1 monochrome bitmap selected into it. If this memory
- device context is used in CreateCompatibleBitmap, the bitmap that
- is created is a monochrome bitmap. To create a color bitmap, use
- the hDC that was used to create the memory device context, as
- shown in the following code:
-
- HDC memDC = CreateCompatibleDC(hDC);
- HBITMAP memBM = CreateCompatibleBitmap(hDC, nWidth, nHeight);
- SelectObject(memDC, memBM);
- */
Bmp = IntGdiCreateBitmap(abs(Width),
abs(Height),
dibs.dsBm.bmPlanes,
Author: mjmartin
Date: Sun May 9 14:27:57 2010
New Revision: 47142
URL: http://svn.reactos.org/svn/reactos?rev=47142&view=rev
Log:
[win32k]
- When message are sent without waiting a reply (non-queued messages) the message queues are referenced and dereferenced in the call.
Message removal and cleanup functions for queues expected a reference on the queue. Add checks to determine if the message is a non-queued message and if so release memory for those that had pointers and more importantly skip dereferencing the queues. Possibly fixes random crashes and memory leaks.
Modified:
trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] Sun May 9 14:27:57 2010
@@ -1072,7 +1072,7 @@
{
DPRINT("Notify the sender and remove a message from the queue that had not been dispatched\n");
- RemoveEntryList(&SentMessage->ListEntry);
+ RemoveEntryList(&SentMessage->ListEntry);
/* remove the message from the dispatching list */
if(SentMessage->DispatchingListEntry.Flink != NULL)
@@ -1086,9 +1086,19 @@
KeSetEvent(SentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
}
- /* dereference our and the sender's message queue */
- IntDereferenceMessageQueue(MessageQueue);
- IntDereferenceMessageQueue(SentMessage->SenderQueue);
+ if (SentMessage->HasPackedLParam == TRUE)
+ {
+ if (SentMessage->Msg.lParam)
+ ExFreePool((PVOID)SentMessage->Msg.lParam);
+ }
+
+ /* Only if it is not a no wait message */
+ if (!(SentMessage->HookMessage & MSQ_SENTNOWAIT))
+ {
+ /* dereference our and the sender's message queue */
+ IntDereferenceMessageQueue(MessageQueue);
+ IntDereferenceMessageQueue(SentMessage->SenderQueue);
+ }
/* free the message */
ExFreePool(SentMessage);
@@ -1509,9 +1519,19 @@
KeSetEvent(CurrentSentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
}
- /* dereference our and the sender's message queue */
- IntDereferenceMessageQueue(MessageQueue);
- IntDereferenceMessageQueue(CurrentSentMessage->SenderQueue);
+ if (CurrentSentMessage->HasPackedLParam == TRUE)
+ {
+ if (CurrentSentMessage->Msg.lParam)
+ ExFreePool((PVOID)CurrentSentMessage->Msg.lParam);
+ }
+
+ /* Only if it is not a no wait message */
+ if (!(CurrentSentMessage->HookMessage & MSQ_SENTNOWAIT))
+ {
+ /* dereference our and the sender's message queue */
+ IntDereferenceMessageQueue(MessageQueue);
+ IntDereferenceMessageQueue(CurrentSentMessage->SenderQueue);
+ }
/* free the message */
ExFreePool(CurrentSentMessage);
@@ -1547,10 +1567,19 @@
KeSetEvent(CurrentSentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
}
- /* dereference our and the sender's message queue */
- IntDereferenceMessageQueue(MessageQueue);
- IntDereferenceMessageQueue(CurrentSentMessage->SenderQueue);
-
+ if (CurrentSentMessage->HasPackedLParam == TRUE)
+ {
+ if (CurrentSentMessage->Msg.lParam)
+ ExFreePool((PVOID)CurrentSentMessage->Msg.lParam);
+ }
+
+ /* Only if it is not a no wait message */
+ if (!(CurrentSentMessage->HookMessage & MSQ_SENTNOWAIT))
+ {
+ /* dereference our and the sender's message queue */
+ IntDereferenceMessageQueue(MessageQueue);
+ IntDereferenceMessageQueue(CurrentSentMessage->SenderQueue);
+ }
/* free the message */
ExFreePool(CurrentSentMessage);
}