SOME*
On 3 November 2015 at 13:36, David Quintana (gigaherz) gigaherz@gmail.com wrote:
The common computers never work with bits in memory. All the common operations work at LEAST in bytes, and often in larger units, so working with bits requires extra logic. Booleans are most commonly stored as 1 byte because of that.
It is possible that come machines do use 1 bit, but they would probably be specialized chips such as embedded microcontrollers.
On 3 November 2015 at 12:57, Javier Agustìn Fernàndez Arroyo elhoir@gmail.com wrote:
i thought it was 1 bit, not 1 byte... thanks for correcting my mistake :)
On Tue, Nov 3, 2015 at 10:00 AM, Thomas Faber thomas.faber@reactos.org wrote:
It makes a difference because m_RefreshPending was initialized to 0 by the constructor, but the three bytes behind it were not, so the first cmpxchg could fail. Plus of course if someone decided to add another bool or a char array or whatever at the end, that would get overwritten.
On 2015-11-03 00:21, Timo Kreuzer wrote:
In fact in this case it wouldn't make a difference, since the bool would be converted to a LONG. But using TRUE/FALSE seems to be appropriate here.
Am 22.10.2015 um 19:37 schrieb gedmurphy@svn.reactos.org:
Author: gedmurphy Date: Thu Oct 22 17:37:51 2015 New Revision: 69650
URL: http://svn.reactos.org/svn/reactos?rev=69650&view=rev Log: The c++ bool is 1 byte, not 4. Thanks Thomas
Modified: trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.cpp trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.h
Modified: trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/devmgr/devmgmt/Ma...
============================================================================== --- trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.cpp [iso-8859-1] Thu Oct 22 17:37:51 2015 @@ -786,7 +786,7 @@ // we set a timer to run in 500ms, which should leave enough time for all // the messages to come through. Wrap so we don't set multiple timers //
if (InterlockedCompareExchange((LONG*)&This->m_RefreshPending, true, false) == false)
if (InterlockedCompareExchange((LONG*)&This->m_RefreshPending, TRUE, FALSE) == FALSE) { SetTimer(hwnd, REFRESH_TIMER, 500, NULL); } @@ -807,7 +807,7 @@ KillTimer(hwnd, REFRESH_TIMER);
// Allow more change notifications
InterlockedExchange((LONG *)&This->m_RefreshPending,false);
InterlockedExchange((LONG *)&This->m_RefreshPending,FALSE); } break; }
Modified: trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/devmgr/devmgmt/Ma...
============================================================================== --- trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/devmgr/devmgmt/MainWindow.h [iso-8859-1] Thu Oct 22 17:37:51 2015 @@ -17,7 +17,7 @@ HMENU m_hMenu; HMENU m_hActionMenu; int m_CmdShow;
- bool m_RefreshPending;
BOOL m_RefreshPending;
public: CDeviceManager(void);
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev