lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


But if I comment LUA_NUMBER_DOUBLE define in luaconf.h, compiler use 

#define lua_number2int(i,n) ((i)=(int)(n)) 

construction, all work correctly.


2010/5/28 Vyacheslav Egorov <mister.aleph@gmail.com>
Double 0xFF000000 is too big to be represented by a signed integer.
You should get value from Lua stack as double then cast it to unsigned integer. 
--
e.v.e



On Fri, May 28, 2010 at 12:14 PM, Dmitry Gapkalov <gapkalov@gmail.com> wrote:
On MSVC compiler this construction

#define lua_number2int(i,n)  __asm {__asm fld n   __asm fistp i}

Example:

bit.band(0xFF000000, 0x00FFFFFF)

while debug after getting from stack, the first value is 0x80000000, second 0xFFFFFF


--
With best wishes
Dmitry Gapkalov




--
With best wishes
Dmitry Gapkalov