From 130c0e40e01e24a79f7e416d1cc4187cd4a2a5fc Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 19 Jun 2013 11:27:00 -0300 Subject: new constant 'MAX_SIZE', distinct from 'MAX_SIZET', for sizes visible from Lua; these must fit in a lua_Integer --- llimits.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'llimits.h') diff --git a/llimits.h b/llimits.h index 86af8cfb..4463e0c0 100644 --- a/llimits.h +++ b/llimits.h @@ -1,5 +1,5 @@ /* -** $Id: llimits.h,v 1.106 2013/05/27 12:43:37 roberto Exp roberto $ +** $Id: llimits.h,v 1.107 2013/05/29 14:04:15 roberto Exp roberto $ ** Limits, basic types, and some other `installation-dependent' definitions ** See Copyright Notice in lua.h */ @@ -27,8 +27,14 @@ typedef LUAI_MEM l_mem; typedef unsigned char lu_byte; +/* maximum value for size_t */ #define MAX_SIZET ((size_t)(~(size_t)0)-2) +/* maximum size visible for Lua (must be representable in a lua_Integer */ +#define MAX_SIZE (sizeof(size_t) <= sizeof(lua_Integer) ? MAX_SIZET \ + : (size_t)(~(lua_Unsigned)0)-2) + + #define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) #define MAX_LMEM ((l_mem) ((MAX_LUMEM >> 1) - 2)) -- cgit v1.2.3-55-g6feb