From ffb798e1e2deb1fe0f931e1f6c5b6d91f694051c Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 10 Jan 2006 10:51:53 -0200 Subject: avoids type punning for table keys --- lobject.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'lobject.h') diff --git a/lobject.h b/lobject.h index 508ac7fe..90e5ff66 100644 --- a/lobject.h +++ b/lobject.h @@ -1,5 +1,5 @@ /* -** $Id: lobject.h,v 2.17 2005/06/13 14:19:00 roberto Exp roberto $ +** $Id: lobject.h,v 2.18 2005/10/24 17:37:33 roberto Exp roberto $ ** Type definitions for Lua objects ** See Copyright Notice in lua.h */ @@ -323,9 +323,12 @@ typedef union Closure { ** Tables */ -typedef struct TKey { - TValuefields; - struct Node *next; /* for chaining */ +typedef union TKey { + struct { + TValuefields; + struct Node *next; /* for chaining */ + } nk; + TValue tvk; } TKey; @@ -360,8 +363,9 @@ typedef struct Table { #define sizenode(t) (twoto((t)->lsizenode)) +#define luaO_nilobject (&luaO_nilobject_) -LUAI_DATA const TValue luaO_nilobject; +LUAI_DATA const TValue luaO_nilobject_; #define ceillog2(x) (luaO_log2((x)-1) + 1) -- cgit v1.2.3-55-g6feb