-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use correct bit masks when extracting low/high word from DWORD
This is a regression introduced by commit 4218a07 The applied bit masks a 8 bit value, while word is 16 bit sized. Closes: #624
- Loading branch information
1 parent
6c52731
commit c58d756
Showing
3 changed files
with
47 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
contrib/platform/test/com/sun/jna/platform/win32/WinDefTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
|
||
package com.sun.jna.platform.win32; | ||
|
||
import com.sun.jna.platform.win32.WinDef.DWORD; | ||
import com.sun.jna.platform.win32.WinDef.WORD; | ||
import org.junit.Test; | ||
import static org.junit.Assert.*; | ||
|
||
public class WinDefTest { | ||
|
||
@Test | ||
public void testWordExtractionFromDword() { | ||
DWORD dword = new DWORD(0x12345678); | ||
|
||
assertEquals(new WORD(0x5678), dword.getLow()); | ||
assertEquals(new WORD(0x1234), dword.getHigh()); | ||
|
||
DWORD dword2 = new DWORD(0xFFFFFFFF); | ||
|
||
assertEquals(new WORD(0xFFFF), dword2.getLow()); | ||
assertEquals(new WORD(0xFFFF), dword2.getHigh()); | ||
|
||
DWORD dword3 = new DWORD(0x00000001); | ||
|
||
assertEquals(new WORD(0x0001), dword3.getLow()); | ||
assertEquals(new WORD(0x0000), dword3.getHigh()); | ||
|
||
DWORD dword4 = new DWORD(0x00010000); | ||
|
||
assertEquals(new WORD(0x0000), dword4.getLow()); | ||
assertEquals(new WORD(0x0001), dword4.getHigh()); | ||
|
||
DWORD dword5 = new DWORD(0x0000FFFF); | ||
|
||
assertEquals(new WORD(0xFFFF), dword5.getLow()); | ||
assertEquals(new WORD(0x0000), dword5.getHigh()); | ||
|
||
DWORD dword6 = new DWORD(0xFFFF0000); | ||
|
||
assertEquals(new WORD(0x0000), dword6.getLow()); | ||
assertEquals(new WORD(0xFFFF), dword6.getHigh()); | ||
} | ||
|
||
} |