[ros-dev] [ros-diffs] [gedmurphy] 69650: The c++ bool is 1 byte, not 4. Thanks Thomas
David Quintana (gigaherz)
gigaherz at gmail.com
Tue Nov 3 12:37:02 UTC 2015
SOME*
On 3 November 2015 at 13:36, David Quintana (gigaherz)
<gigaherz at 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 at 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 at 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 at 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/MainWindow.cpp?rev=69650&r1=69649&r2=69650&view=diff
>>> >>
>>> >> ==============================================================================
>>> >> --- 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/MainWindow.h?rev=69650&r1=69649&r2=69650&view=diff
>>> >>
>>> >> ==============================================================================
>>> >> --- 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 at reactos.org
>>> http://www.reactos.org/mailman/listinfo/ros-dev
>>
>>
>>
>> _______________________________________________
>> Ros-dev mailing list
>> Ros-dev at reactos.org
>> http://www.reactos.org/mailman/listinfo/ros-dev
More information about the Ros-dev
mailing list