The Battle for Wesnoth  1.17.0-dev
Classes | Macros | Typedefs | Functions
lobject.cpp File Reference
#include "lprefix.h"
#include <locale.h>
#include <math.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lua.h"
#include "lctype.h"
#include "ldebug.h"
#include "ldo.h"
#include "lmem.h"
#include "lobject.h"
#include "lstate.h"
#include "lstring.h"
#include "lvm.h"
Include dependency graph for lobject.cpp:

Go to the source code of this file.

Classes

struct  BuffFS
 

Macros

#define lobject_c
 
#define LUA_CORE
 
#define L_MAXLENNUM   200
 
#define MAXBY10   cast(lua_Unsigned, LUA_MAXINTEGER / 10)
 
#define MAXLASTD   cast_int(LUA_MAXINTEGER % 10)
 
#define MAXNUMBER2STR   44
 
#define BUFVFS   200
 
#define addsize(b, sz)   ((b)->blen += (sz))
 
#define RETS   "..."
 
#define PRE   "[string \""
 
#define POS   "\"]"
 
#define addstr(a, b, l)   ( memcpy(a,b,(l) * sizeof(char)), a += (l) )
 

Typedefs

typedef struct BuffFS BuffFS
 

Functions

int luaO_ceillog2 (unsigned int x)
 
static lua_Integer intarith (lua_State *L, int op, lua_Integer v1, lua_Integer v2)
 
static lua_Number numarith (lua_State *L, int op, lua_Number v1, lua_Number v2)
 
int luaO_rawarith (lua_State *L, int op, const TValue *p1, const TValue *p2, TValue *res)
 
void luaO_arith (lua_State *L, int op, const TValue *p1, const TValue *p2, StkId res)
 
int luaO_hexavalue (int c)
 
static int isneg (const char **s)
 
static const char * l_str2dloc (const char *s, lua_Number *result, int mode)
 
static const char * l_str2d (const char *s, lua_Number *result)
 
static const char * l_str2int (const char *s, lua_Integer *result)
 
size_t luaO_str2num (const char *s, TValue *o)
 
int luaO_utf8esc (char *buff, unsigned long x)
 
static int tostringbuff (TValue *obj, char *buff)
 
void luaO_tostring (lua_State *L, TValue *obj)
 
static void pushstr (BuffFS *buff, const char *str, size_t l)
 
static void clearbuff (BuffFS *buff)
 
static char * getbuff (BuffFS *buff, int sz)
 
static void addstr2buff (BuffFS *buff, const char *str, size_t slen)
 
static void addnum2buff (BuffFS *buff, TValue *num)
 
const char * luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp)
 
const char * luaO_pushfstring (lua_State *L, const char *fmt,...)
 
void luaO_chunkid (char *out, const char *source, size_t srclen)
 

Macro Definition Documentation

◆ addsize

#define addsize (   b,
  sz 
)    ((b)->blen += (sz))

Definition at line 436 of file lobject.cpp.

Referenced by addnum2buff(), addstr2buff(), and luaO_pushvfstring().

◆ addstr

#define addstr (   a,
  b,
 
)    ( memcpy(a,b,(l) * sizeof(char)), a += (l) )

Definition at line 555 of file lobject.cpp.

Referenced by luaO_chunkid().

◆ BUFVFS

#define BUFVFS   200

Definition at line 390 of file lobject.cpp.

Referenced by addstr2buff(), and getbuff().

◆ L_MAXLENNUM

#define L_MAXLENNUM   200

Definition at line 220 of file lobject.cpp.

Referenced by l_str2d().

◆ lobject_c

#define lobject_c

Definition at line 7 of file lobject.cpp.

◆ LUA_CORE

#define LUA_CORE

Definition at line 8 of file lobject.cpp.

◆ MAXBY10

#define MAXBY10   cast(lua_Unsigned, LUA_MAXINTEGER / 10)

Definition at line 273 of file lobject.cpp.

Referenced by l_str2int().

◆ MAXLASTD

#define MAXLASTD   cast_int(LUA_MAXINTEGER % 10)

Definition at line 274 of file lobject.cpp.

Referenced by l_str2int().

◆ MAXNUMBER2STR

#define MAXNUMBER2STR   44

Definition at line 349 of file lobject.cpp.

Referenced by addnum2buff(), luaO_tostring(), and tostringbuff().

◆ POS

#define POS   "\"]"

Definition at line 553 of file lobject.cpp.

Referenced by luaO_chunkid().

◆ PRE

#define PRE   "[string \""

Definition at line 552 of file lobject.cpp.

Referenced by luaO_chunkid().

◆ RETS

#define RETS   "..."

Definition at line 551 of file lobject.cpp.

Referenced by luaO_chunkid().

Typedef Documentation

◆ BuffFS

typedef struct BuffFS BuffFS

Function Documentation

◆ addnum2buff()

static void addnum2buff ( BuffFS buff,
TValue num 
)
static

Definition at line 459 of file lobject.cpp.

References addsize, getbuff(), MAXNUMBER2STR, and tostringbuff().

Referenced by luaO_pushvfstring().

◆ addstr2buff()

static void addstr2buff ( BuffFS buff,
const char *  str,
size_t  slen 
)
static

Definition at line 443 of file lobject.cpp.

References addsize, BUFVFS, cast_int, clearbuff(), getbuff(), and pushstr().

Referenced by luaO_pushvfstring().

◆ clearbuff()

static void clearbuff ( BuffFS buff)
static

Definition at line 418 of file lobject.cpp.

References BuffFS::blen, pushstr(), and BuffFS::space.

Referenced by addstr2buff(), getbuff(), and luaO_pushvfstring().

◆ getbuff()

static char* getbuff ( BuffFS buff,
int  sz 
)
static

Definition at line 428 of file lobject.cpp.

References BuffFS::blen, BUFVFS, clearbuff(), lua_assert, and BuffFS::space.

Referenced by addnum2buff(), addstr2buff(), and luaO_pushvfstring().

◆ intarith()

static lua_Integer intarith ( lua_State L,
int  op,
lua_Integer  v1,
lua_Integer  v2 
)
static

◆ isneg()

static int isneg ( const char **  s)
static

◆ l_str2d()

static const char* l_str2d ( const char *  s,
lua_Number result 
)
static

Definition at line 251 of file lobject.cpp.

References cast_uchar, L_MAXLENNUM, l_str2dloc(), ltolower, lua_getlocaledecpoint, and s.

Referenced by luaO_str2num().

◆ l_str2dloc()

static const char* l_str2dloc ( const char *  s,
lua_Number result,
int  mode 
)
static

Definition at line 228 of file lobject.cpp.

References cast_uchar, lisspace, lua_str2number, and lua_strx2number.

Referenced by l_str2d().

◆ l_str2int()

static const char* l_str2int ( const char *  s,
lua_Integer result 
)
static

Definition at line 276 of file lobject.cpp.

References a, cast_uchar, d, isneg(), l_castU2S, lisdigit, lisspace, lisxdigit, luaO_hexavalue(), MAXBY10, MAXLASTD, and s.

Referenced by luaO_str2num().

◆ luaO_arith()

void luaO_arith ( lua_State L,
int  op,
const TValue p1,
const TValue p2,
StkId  res 
)

Definition at line 126 of file lobject.cpp.

References cast, LUA_OPADD, luaO_rawarith(), luaT_trybinTM(), s2v, and TM_ADD.

Referenced by lua_arith().

◆ luaO_ceillog2()

int luaO_ceillog2 ( unsigned int  x)

Definition at line 35 of file lobject.cpp.

Referenced by countint(), luaK_settablesize(), and setnodevector().

◆ luaO_chunkid()

void luaO_chunkid ( char *  out,
const char *  source,
size_t  srclen 
)

Definition at line 557 of file lobject.cpp.

References addstr, LL, LUA_IDSIZE, POS, PRE, and RETS.

Referenced by funcinfo(), and luaG_addinfo().

◆ luaO_hexavalue()

int luaO_hexavalue ( int  c)

Definition at line 135 of file lobject.cpp.

References lisdigit, and ltolower.

Referenced by gethexa(), isneg(), l_str2int(), and readutf8esc().

◆ luaO_pushfstring()

const char* luaO_pushfstring ( lua_State L,
const char *  fmt,
  ... 
)

◆ luaO_pushvfstring()

const char* luaO_pushvfstring ( lua_State L,
const char *  fmt,
va_list  argp 
)

◆ luaO_rawarith()

int luaO_rawarith ( lua_State L,
int  op,
const TValue p1,
const TValue p2,
TValue res 
)

◆ luaO_str2num()

size_t luaO_str2num ( const char *  s,
TValue o 
)

Definition at line 308 of file lobject.cpp.

References e, i, l_str2d(), l_str2int(), n, setfltvalue, and setivalue.

Referenced by l_strton(), lua_stringtonumber(), and read_numeral().

◆ luaO_tostring()

void luaO_tostring ( lua_State L,
TValue obj 
)

Definition at line 374 of file lobject.cpp.

References luaS_newlstr(), MAXNUMBER2STR, setsvalue, and tostringbuff().

Referenced by lua_tolstring().

◆ luaO_utf8esc()

int luaO_utf8esc ( char *  buff,
unsigned long  x 
)

Definition at line 323 of file lobject.cpp.

References cast_char, lua_assert, n, and UTF8BUFFSZ.

Referenced by luaO_pushvfstring(), and utf8esc().

◆ numarith()

static lua_Number numarith ( lua_State L,
int  op,
lua_Number  v1,
lua_Number  v2 
)
static

◆ pushstr()

static void pushstr ( BuffFS buff,
const char *  str,
size_t  l 
)
static

Definition at line 405 of file lobject.cpp.

References BuffFS::L, luaS_newlstr(), luaV_concat(), BuffFS::pushed, setsvalue2s, and lua_State::top.

Referenced by addstr2buff(), and clearbuff().

◆ tostringbuff()

static int tostringbuff ( TValue obj,
char *  buff 
)
static