Skip to content

Commit 633e5c0

Browse files
committed
Fix incorrect return values in OSAtomic
1 parent 808d1bb commit 633e5c0

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/Cafe/OS/libs/coreinit/coreinit_Atomic.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ namespace coreinit
3333

3434
uint32 OSAddAtomic(std::atomic<uint32be>* mem, uint32 adder)
3535
{
36+
// used by SDL Wii U port
3637
uint32be knownValue;
3738
while (true)
3839
{
39-
uint32be knownValue = mem->load();
40+
knownValue = mem->load();
4041
uint32be newValue = knownValue + adder;
4142
if (mem->compare_exchange_strong(knownValue, newValue))
4243
break;
@@ -68,7 +69,7 @@ namespace coreinit
6869
uint64be knownValue;
6970
while (true)
7071
{
71-
uint64be knownValue = mem->load();
72+
knownValue = mem->load();
7273
uint64be newValue = knownValue + adder;
7374
if (mem->compare_exchange_strong(knownValue, newValue))
7475
break;
@@ -81,7 +82,7 @@ namespace coreinit
8182
uint64be knownValue;
8283
while (true)
8384
{
84-
uint64be knownValue = mem->load();
85+
knownValue = mem->load();
8586
uint64be newValue = knownValue & val;
8687
if (mem->compare_exchange_strong(knownValue, newValue))
8788
break;
@@ -94,7 +95,7 @@ namespace coreinit
9495
uint64be knownValue;
9596
while (true)
9697
{
97-
uint64be knownValue = mem->load();
98+
knownValue = mem->load();
9899
uint64be newValue = knownValue | val;
99100
if (mem->compare_exchange_strong(knownValue, newValue))
100101
break;

0 commit comments

Comments
 (0)