From 2b83711fbac0509a40cfb616b9a68bdf683e8471 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 19 Dec 2014 11:36:32 -0200 Subject: new macro 'nvalue' (to convert an object to a float when we know object is a number) --- lobject.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lobject.h') diff --git a/lobject.h b/lobject.h index 54e4c020..10dd7529 100644 --- a/lobject.h +++ b/lobject.h @@ -1,5 +1,5 @@ /* -** $Id: lobject.h,v 2.103 2014/10/01 11:52:33 roberto Exp roberto $ +** $Id: lobject.h,v 2.104 2014/10/25 11:50:46 roberto Exp roberto $ ** Type definitions for Lua objects ** See Copyright Notice in lua.h */ @@ -154,6 +154,8 @@ typedef struct lua_TValue TValue; /* Macros to access values */ #define ivalue(o) check_exp(ttisinteger(o), val_(o).i) #define fltvalue(o) check_exp(ttisfloat(o), val_(o).n) +#define nvalue(o) check_exp(ttisnumber(o), \ + (ttisinteger(o) ? cast_num(ivalue(o)) : fltvalue(o))) #define gcvalue(o) check_exp(iscollectable(o), val_(o).gc) #define pvalue(o) check_exp(ttislightuserdata(o), val_(o).p) #define tsvalue(o) check_exp(ttisstring(o), gco2ts(val_(o).gc)) -- cgit v1.2.3-55-g6feb