auxlib split in two parts (lauxlib and lbuffer)

This commit is contained in:
Roberto Ierusalimschy
1997-12-23 17:24:36 -02:00
parent 1bf762ba38
commit d916487d7c
2 changed files with 5 additions and 76 deletions

View File

@@ -1,5 +1,5 @@
/*
** $Id: lauxlib.c,v 1.5 1997/12/09 13:35:19 roberto Exp roberto $
** $Id: lauxlib.c,v 1.6 1997/12/17 20:48:58 roberto Exp roberto $
** Auxiliar functions for building Lua libraries
** See Copyright Notice in lua.h
*/
@@ -7,11 +7,8 @@
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "lauxlib.h"
#include "lmem.h"
#include "lstate.h"
#include "lua.h"
#include "luadebug.h"
@@ -100,71 +97,3 @@ void luaL_verror (char *fmt, ...)
lua_error(buff);
}
/*-------------------------------------------------------
** Auxiliar buffer
-------------------------------------------------------*/
#define BUFF_STEP 32
#define openspace(size) if (L->Mbuffnext+(size) > L->Mbuffsize) Openspace(size)
static void Openspace (int size)
{
LState *l = L; /* to optimize */
int base = l->Mbuffbase-l->Mbuffer;
l->Mbuffsize *= 2;
if (l->Mbuffnext+size > l->Mbuffsize) /* still not big enough? */
l->Mbuffsize = l->Mbuffnext+size;
l->Mbuffer = luaM_realloc(l->Mbuffer, l->Mbuffsize);
l->Mbuffbase = l->Mbuffer+base;
}
char *luaL_openspace (int size)
{
openspace(size);
return L->Mbuffer+L->Mbuffnext;
}
void luaL_addchar (int c)
{
openspace(BUFF_STEP);
L->Mbuffer[L->Mbuffnext++] = c;
}
void luaL_resetbuffer (void)
{
L->Mbuffnext = L->Mbuffbase-L->Mbuffer;
}
void luaL_addsize (int n)
{
L->Mbuffnext += n;
}
int luaL_newbuffer (int size)
{
int old = L->Mbuffbase-L->Mbuffer;
openspace(size);
L->Mbuffbase = L->Mbuffer+L->Mbuffnext;
return old;
}
void luaL_oldbuffer (int old)
{
L->Mbuffnext = L->Mbuffbase-L->Mbuffer;
L->Mbuffbase = L->Mbuffer+old;
}
char *luaL_buffer (void)
{
return L->Mbuffbase;
}