aboutsummaryrefslogtreecommitdiff
path: root/llimits.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2014-04-11 16:56:04 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2014-04-11 16:56:04 -0300
commitbf06e22b6a8415adc6970adfea84d3b236425c90 (patch)
treec01403a9e76f2a7285830ce692ea960b36a68c4d /llimits.h
parentd99ffa920dadc8ff9ef8cade2436e26d8fa9a6b2 (diff)
downloadlua-bf06e22b6a8415adc6970adfea84d3b236425c90.tar.gz
lua-bf06e22b6a8415adc6970adfea84d3b236425c90.tar.bz2
lua-bf06e22b6a8415adc6970adfea84d3b236425c90.zip
correct definition for 'MAX_SIZE' (using singed integers as the limit,
not unsigned ones) + new type 'l_uacInt'
Diffstat (limited to 'llimits.h')
-rw-r--r--llimits.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/llimits.h b/llimits.h
index 77971c4c..c7afce38 100644
--- a/llimits.h
+++ b/llimits.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: llimits.h,v 1.111 2014/03/07 16:19:00 roberto Exp roberto $ 2** $Id: llimits.h,v 1.112 2014/04/11 19:02:16 roberto Exp roberto $
3** Limits, basic types, and some other `installation-dependent' definitions 3** Limits, basic types, and some other `installation-dependent' definitions
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -27,12 +27,16 @@ typedef LUAI_MEM l_mem;
27typedef unsigned char lu_byte; 27typedef unsigned char lu_byte;
28 28
29 29
30/* maximum value for a lua_Unsigned */
31#define MAX_UINTEGER (((lua_Unsigned)LUA_MAXINTEGER << 1) + 1u)
32
33
30/* maximum value for size_t */ 34/* maximum value for size_t */
31#define MAX_SIZET ((size_t)(~(size_t)0)-2) 35#define MAX_SIZET ((size_t)(~(size_t)0)-2)
32 36
33/* maximum size visible for Lua (must be representable in a lua_Integer */ 37/* maximum size visible for Lua (must be representable in a lua_Integer */
34#define MAX_SIZE (sizeof(size_t) <= sizeof(lua_Integer) ? MAX_SIZET \ 38#define MAX_SIZE (sizeof(size_t) < sizeof(lua_Integer) ? MAX_SIZET \
35 : (size_t)(~(lua_Unsigned)0)-2) 39 : (size_t)(LUA_MAXINTEGER)-2)
36 40
37 41
38#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) 42#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2)
@@ -43,10 +47,6 @@ typedef unsigned char lu_byte;
43#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ 47#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */
44 48
45 49
46/* maximum value for a lua_Unsigned */
47#define MAX_UINTEGER (((lua_Unsigned)LUA_MAXINTEGER << 1) + 1u)
48
49
50/* 50/*
51** conversion of pointer to integer 51** conversion of pointer to integer
52** this is for hashing only; there is no problem if the integer 52** this is for hashing only; there is no problem if the integer
@@ -64,8 +64,9 @@ typedef unsigned char lu_byte;
64typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; 64typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;
65 65
66 66
67/* result of a `usual argument conversion' over lua_Number */ 67/* types of 'usual argument conversions' for lua_Number and lua_Integer */
68typedef LUAI_UACNUMBER l_uacNumber; 68typedef LUAI_UACNUMBER l_uacNumber;
69typedef LUAI_UACINT l_uacInt;
69 70
70 71
71/* internal assertions for in-house debugging */ 72/* internal assertions for in-house debugging */