Unicode strings not aligned by pushd when multiple string parts used.
The second string in this code is not aligned.
include 'win32wx.inc'
.code
begin:
align 2
stdcall is_it_aligned,'Some text'
align 2
stdcall is_it_aligned,<'Some more text',13,10>
invoke ExitProcess,0
proc is_it_aligned parameter
test [parameter],1
jnz .not_aligned
invoke MessageBox,0,[parameter],'Aligned Okay',0
ret
.not_aligned:
invoke MessageBox,0,[parameter],'Not Aligned',0
ret
endp
.end begin
_________________________________________________________________________
We can fix this in WIN32WX.INC. At line 71:
macro pushd value
{ match first=,more, value \{ \local ..continue
times 1 - (rva $ and 1) nop ;<<<----- add this line
call ..continue
;...
WIN32WXP.INC has the same problem.