diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-06-20 14:46:06 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-06-20 14:46:06 -0300 |
| commit | a08d82eb132bfd9db5b91e0d5ebcb81d7b26dcd0 (patch) | |
| tree | 45618815246686a535a28fb4e6f9736a60be00d4 /lmathlib.c | |
| parent | 55ac40f859ad8e28fe71a8801d49f4a4140e8aa3 (diff) | |
| download | lua-a08d82eb132bfd9db5b91e0d5ebcb81d7b26dcd0.tar.gz lua-a08d82eb132bfd9db5b91e0d5ebcb81d7b26dcd0.tar.bz2 lua-a08d82eb132bfd9db5b91e0d5ebcb81d7b26dcd0.zip | |
llimits.h being used by all Lua code
The definitions in llimits.h are useful not only for the core. That
header only defines types and '#define's, so libs and core still do
not share any real code/data.
Diffstat (limited to 'lmathlib.c')
| -rw-r--r-- | lmathlib.c | 21 |
1 files changed, 7 insertions, 14 deletions
| @@ -20,6 +20,7 @@ | |||
| 20 | 20 | ||
| 21 | #include "lauxlib.h" | 21 | #include "lauxlib.h" |
| 22 | #include "lualib.h" | 22 | #include "lualib.h" |
| 23 | #include "llimits.h" | ||
| 23 | 24 | ||
| 24 | 25 | ||
| 25 | #undef PI | 26 | #undef PI |
| @@ -366,25 +367,17 @@ static lua_Number I2d (Rand64 x) { | |||
| 366 | 367 | ||
| 367 | #else /* no 'Rand64' }{ */ | 368 | #else /* no 'Rand64' }{ */ |
| 368 | 369 | ||
| 369 | /* get an integer with at least 32 bits */ | ||
| 370 | #if LUAI_IS32INT | ||
| 371 | typedef unsigned int lu_int32; | ||
| 372 | #else | ||
| 373 | typedef unsigned long lu_int32; | ||
| 374 | #endif | ||
| 375 | |||
| 376 | |||
| 377 | /* | 370 | /* |
| 378 | ** Use two 32-bit integers to represent a 64-bit quantity. | 371 | ** Use two 32-bit integers to represent a 64-bit quantity. |
| 379 | */ | 372 | */ |
| 380 | typedef struct Rand64 { | 373 | typedef struct Rand64 { |
| 381 | lu_int32 h; /* higher half */ | 374 | l_uint32 h; /* higher half */ |
| 382 | lu_int32 l; /* lower half */ | 375 | l_uint32 l; /* lower half */ |
| 383 | } Rand64; | 376 | } Rand64; |
| 384 | 377 | ||
| 385 | 378 | ||
| 386 | /* | 379 | /* |
| 387 | ** If 'lu_int32' has more than 32 bits, the extra bits do not interfere | 380 | ** If 'l_uint32' has more than 32 bits, the extra bits do not interfere |
| 388 | ** with the 32 initial bits, except in a right shift and comparisons. | 381 | ** with the 32 initial bits, except in a right shift and comparisons. |
| 389 | ** Moreover, the final result has to discard the extra bits. | 382 | ** Moreover, the final result has to discard the extra bits. |
| 390 | */ | 383 | */ |
| @@ -398,7 +391,7 @@ typedef struct Rand64 { | |||
| 398 | */ | 391 | */ |
| 399 | 392 | ||
| 400 | /* build a new Rand64 value */ | 393 | /* build a new Rand64 value */ |
| 401 | static Rand64 packI (lu_int32 h, lu_int32 l) { | 394 | static Rand64 packI (l_uint32 h, l_uint32 l) { |
| 402 | Rand64 result; | 395 | Rand64 result; |
| 403 | result.h = h; | 396 | result.h = h; |
| 404 | result.l = l; | 397 | result.l = l; |
| @@ -471,7 +464,7 @@ static Rand64 nextrand (Rand64 *state) { | |||
| 471 | */ | 464 | */ |
| 472 | 465 | ||
| 473 | /* an unsigned 1 with proper type */ | 466 | /* an unsigned 1 with proper type */ |
| 474 | #define UONE ((lu_int32)1) | 467 | #define UONE ((l_uint32)1) |
| 475 | 468 | ||
| 476 | 469 | ||
| 477 | #if FIGS <= 32 | 470 | #if FIGS <= 32 |
| @@ -522,7 +515,7 @@ static lua_Unsigned I2UInt (Rand64 x) { | |||
| 522 | 515 | ||
| 523 | /* convert a 'lua_Unsigned' to a 'Rand64' */ | 516 | /* convert a 'lua_Unsigned' to a 'Rand64' */ |
| 524 | static Rand64 Int2I (lua_Unsigned n) { | 517 | static Rand64 Int2I (lua_Unsigned n) { |
| 525 | return packI((lu_int32)((n >> 31) >> 1), (lu_int32)n); | 518 | return packI((l_uint32)((n >> 31) >> 1), (l_uint32)n); |
| 526 | } | 519 | } |
| 527 | 520 | ||
| 528 | #endif /* } */ | 521 | #endif /* } */ |
