added qse_ubi_t

separated task functions from httpd.c to httpd_task.c
This commit is contained in:
2011-07-21 10:17:16 +00:00
parent 618f8bcf1f
commit b08ebd719c
19 changed files with 627 additions and 467 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: Awk.cpp 480 2011-05-25 14:00:19Z hyunghwan.chung $
* $Id: Awk.cpp 510 2011-07-20 16:17:16Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -139,7 +139,7 @@ Awk::Console::~Console ()
{
if (filename != QSE_NULL)
{
qse_awk_free ((awk_t*)this, filename);
qse_awk_freemem ((awk_t*)this, filename);
}
}
@ -230,7 +230,7 @@ Awk::Value::IntIndex::IntIndex (long_t x)
void* Awk::Value::operator new (size_t n, Run* run) throw ()
{
void* ptr = qse_awk_rtx_alloc (run->rtx, QSE_SIZEOF(run) + n);
void* ptr = qse_awk_rtx_allocmem (run->rtx, QSE_SIZEOF(run) + n);
if (ptr == QSE_NULL) return QSE_NULL;
*(Run**)ptr = run;
@ -239,7 +239,7 @@ void* Awk::Value::operator new (size_t n, Run* run) throw ()
void* Awk::Value::operator new[] (size_t n, Run* run) throw ()
{
void* ptr = qse_awk_rtx_alloc (run->rtx, QSE_SIZEOF(run) + n);
void* ptr = qse_awk_rtx_allocmem (run->rtx, QSE_SIZEOF(run) + n);
if (ptr == QSE_NULL) return QSE_NULL;
*(Run**)ptr = run;
@ -249,25 +249,25 @@ void* Awk::Value::operator new[] (size_t n, Run* run) throw ()
#if !defined(__BORLANDC__)
void Awk::Value::operator delete (void* ptr, Run* run)
{
qse_awk_rtx_free (run->rtx, (char*)ptr-QSE_SIZEOF(run));
qse_awk_rtx_freemem (run->rtx, (char*)ptr-QSE_SIZEOF(run));
}
void Awk::Value::operator delete[] (void* ptr, Run* run)
{
qse_awk_rtx_free (run->rtx, (char*)ptr-QSE_SIZEOF(run));
qse_awk_rtx_freemem (run->rtx, (char*)ptr-QSE_SIZEOF(run));
}
#endif
void Awk::Value::operator delete (void* ptr)
{
void* p = (char*)ptr-QSE_SIZEOF(Run*);
qse_awk_rtx_free ((*(Run**)p)->rtx, p);
qse_awk_rtx_freemem ((*(Run**)p)->rtx, p);
}
void Awk::Value::operator delete[] (void* ptr)
{
void* p = (char*)ptr-QSE_SIZEOF(Run*);
qse_awk_rtx_free ((*(Run**)p)->rtx, p);
qse_awk_rtx_freemem ((*(Run**)p)->rtx, p);
}
Awk::Value::Value (): run (QSE_NULL), val (qse_awk_val_nil)
@ -303,7 +303,7 @@ Awk::Value::~Value ()
{
qse_awk_rtx_refdownval (run->rtx, val);
if (cached.str.ptr != QSE_NULL)
qse_awk_rtx_free (run->rtx, cached.str.ptr);
qse_awk_rtx_freemem (run->rtx, cached.str.ptr);
}
}
@ -316,7 +316,7 @@ Awk::Value& Awk::Value::operator= (const Value& v)
qse_awk_rtx_refdownval (run->rtx, val);
if (cached.str.ptr != QSE_NULL)
{
qse_awk_rtx_free (run->rtx, cached.str.ptr);
qse_awk_rtx_freemem (run->rtx, cached.str.ptr);
cached.str.ptr = QSE_NULL;
cached.str.len = 0;
}
@ -339,7 +339,7 @@ void Awk::Value::clear ()
if (cached.str.ptr != QSE_NULL)
{
qse_awk_rtx_free (run->rtx, cached.str.ptr);
qse_awk_rtx_freemem (run->rtx, cached.str.ptr);
cached.str.ptr = QSE_NULL;
cached.str.len = 0;
}
@ -485,7 +485,7 @@ int Awk::Value::setVal (Run* r, val_t* v)
qse_awk_rtx_refdownval (this->run->rtx, val);
if (cached.str.ptr != QSE_NULL)
{
qse_awk_rtx_free (this->run->rtx, cached.str.ptr);
qse_awk_rtx_freemem (this->run->rtx, cached.str.ptr);
cached.str.ptr = QSE_NULL;
cached.str.len = 0;
}
@ -1062,7 +1062,7 @@ static void free_function_map_value (
Awk::htb_t* map, void* dptr, Awk::size_t dlen)
{
Awk* awk = *(Awk**) QSE_XTN (map);
qse_awk_free ((Awk::awk_t*)*awk, dptr);
qse_awk_freemem ((Awk::awk_t*)*awk, dptr);
}
int Awk::open ()
@ -1214,7 +1214,7 @@ int Awk::call (
if (nargs <= QSE_COUNTOF(buf)) ptr = buf;
else
{
ptr = (val_t**) qse_awk_alloc (
ptr = (val_t**) qse_awk_allocmem (
awk, QSE_SIZEOF(val_t*) * nargs);
if (ptr == QSE_NULL)
{
@ -1229,7 +1229,7 @@ int Awk::call (
val_t* rv = qse_awk_rtx_call (runctx.rtx, name, ptr, nargs);
if (ptr != QSE_NULL && ptr != buf) qse_awk_free (awk, ptr);
if (ptr != QSE_NULL && ptr != buf) qse_awk_freemem (awk, ptr);
if (rv == QSE_NULL)
{
@ -1409,7 +1409,7 @@ int Awk::xstrs_t::add (awk_t* awk, const char_t* arg, size_t len)
size_t capa = this->capa;
capa += 64;
ptr = (qse_xstr_t*) qse_awk_realloc (
ptr = (qse_xstr_t*) qse_awk_reallocmem (
awk, this->ptr, QSE_SIZEOF(qse_xstr_t)*(capa+1));
if (ptr == QSE_NULL) return -1;
@ -1433,9 +1433,9 @@ void Awk::xstrs_t::clear (awk_t* awk)
if (this->ptr != QSE_NULL)
{
while (this->len > 0)
qse_awk_free (awk, this->ptr[--this->len].ptr);
qse_awk_freemem (awk, this->ptr[--this->len].ptr);
qse_awk_free (awk, this->ptr);
qse_awk_freemem (awk, this->ptr);
this->ptr = QSE_NULL;
this->capa = 0;
}
@ -1517,7 +1517,7 @@ int Awk::addFunction (
QSE_ASSERT (awk != QSE_NULL);
FunctionHandler* tmp = (FunctionHandler*)
qse_awk_alloc (awk, QSE_SIZEOF(handler));
qse_awk_allocmem (awk, QSE_SIZEOF(handler));
if (tmp == QSE_NULL)
{
setError (QSE_AWK_ENOMEM);
@ -1540,7 +1540,7 @@ int Awk::addFunction (
functionHandler);
if (p == QSE_NULL)
{
qse_awk_free (awk, tmp);
qse_awk_freemem (awk, tmp);
retrieveError ();
return -1;
}
@ -1550,7 +1550,7 @@ int Awk::addFunction (
if (pair == QSE_NULL)
{
qse_awk_delfnc (awk, name, nameLen);
qse_awk_free (awk, tmp);
qse_awk_freemem (awk, tmp);
setError (QSE_AWK_ENOMEM);
return -1;

View File

@ -1,5 +1,5 @@
/*
* $Id: StdAwk.cpp 480 2011-05-25 14:00:19Z hyunghwan.chung $
* $Id: StdAwk.cpp 510 2011-07-20 16:17:16Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -114,7 +114,7 @@ int StdAwk::system (Run& run, Value& ret, const Value* args, size_t nargs,
#elif defined(QSE_CHAR_IS_MCHAR)
return ret.setInt ((long_t)::system(ptr));
#else
char* mbs = (char*) qse_awk_alloc ((awk_t*)(Awk*)run, l*5+1);
char* mbs = (char*) qse_awk_allocmem ((awk_t*)(Awk*)run, l*5+1);
if (mbs == QSE_NULL) return -1;
/* at this point, the string is guaranteed to be
@ -126,14 +126,14 @@ int StdAwk::system (Run& run, Value& ret, const Value* args, size_t nargs,
{
/* not the entire string is converted.
* mbs is not null-terminated properly. */
qse_awk_free ((awk_t*)(Awk*)run, mbs);
qse_awk_freemem ((awk_t*)(Awk*)run, mbs);
return -1;
}
mbs[mbl] = '\0';
int n = ret.setInt ((long_t)::system(mbs));
qse_awk_free ((awk_t*)(Awk*)run, mbs);
qse_awk_freemem ((awk_t*)(Awk*)run, mbs);
return n;
#endif
}
@ -381,7 +381,7 @@ int StdAwk::open_console_in (Console& io)
if (out.u.cpldup.len == 0)
{
/* the name is empty */
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
runarg_index++;
goto nextfile;
}
@ -393,7 +393,7 @@ int StdAwk::open_console_in (Console& io)
arg.ptr = out.u.cpldup.ptr;
arg.len = qse_strlen (arg.ptr);
((Run*)io)->setError (QSE_AWK_EIONMNL, &arg);
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
return -1;
}
@ -414,7 +414,7 @@ int StdAwk::open_console_in (Console& io)
arg.ptr = file;
arg.len = qse_strlen (arg.ptr);
((Run*)io)->setError (QSE_AWK_EOPEN, &arg);
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
return -1;
}
}
@ -423,11 +423,11 @@ int StdAwk::open_console_in (Console& io)
rtx, file, qse_strlen(file)) == -1)
{
if (sio != qse_sio_in) qse_sio_close (sio);
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
return -1;
}
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
io.setHandle (sio);
/* increment the counter of files successfully opened */

View File

@ -1,5 +1,5 @@
/*
* $Id: misc.c 462 2011-05-18 14:36:40Z hyunghwan.chung $
* $Id: misc.c 510 2011-07-20 16:17:16Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -20,29 +20,37 @@
#include "awk.h"
void* qse_awk_alloc (qse_awk_t* awk, qse_size_t size)
void* qse_awk_allocmem (qse_awk_t* awk, qse_size_t size)
{
return QSE_AWK_ALLOC (awk, size);
void* ptr = QSE_AWK_ALLOC (awk, size);
if (ptr == QSE_NULL) qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL);
return ptr;
}
void* qse_awk_realloc (qse_awk_t* awk, void* ptr, qse_size_t size)
void* qse_awk_reallocmem (qse_awk_t* awk, void* ptr, qse_size_t size)
{
return QSE_AWK_REALLOC (awk, ptr, size);
void* nptr = QSE_AWK_REALLOC (awk, ptr, size);
if (nptr == QSE_NULL) qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL);
return nptr;
}
void qse_awk_free (qse_awk_t* awk, void* ptr)
void qse_awk_freemem (qse_awk_t* awk, void* ptr)
{
QSE_AWK_FREE (awk, ptr);
}
qse_char_t* qse_awk_strdup (qse_awk_t* awk, const qse_char_t* s)
{
return QSE_AWK_STRDUP (awk, s);
qse_char_t* ptr = QSE_AWK_STRDUP (awk, s);
if (ptr == QSE_NULL) qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL);
return ptr;
}
qse_char_t* qse_awk_strxdup (qse_awk_t* awk, const qse_char_t* s, qse_size_t l)
{
return QSE_AWK_STRXDUP (awk, s, l);
qse_char_t* ptr = QSE_AWK_STRXDUP (awk, s, l);
if (ptr == QSE_NULL) qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL);
return ptr;
}
qse_long_t qse_awk_strxtolong (
@ -1085,18 +1093,18 @@ int qse_awk_matchrex (
return x;
}
void* qse_awk_rtx_alloc (qse_awk_rtx_t* rtx, qse_size_t size)
void* qse_awk_rtx_allocmem (qse_awk_rtx_t* rtx, qse_size_t size)
{
return qse_awk_alloc (rtx->awk, size);
return qse_awk_allocmem (rtx->awk, size);
}
void* qse_awk_rtx_realloc (qse_awk_rtx_t* rtx, void* ptr, qse_size_t size)
void* qse_awk_rtx_reallocmem (qse_awk_rtx_t* rtx, void* ptr, qse_size_t size)
{
return qse_awk_realloc (rtx->awk, ptr, size);
return qse_awk_reallocmem (rtx->awk, ptr, size);
}
void qse_awk_rtx_free (qse_awk_rtx_t* rtx, void* ptr)
void qse_awk_rtx_freemem (qse_awk_rtx_t* rtx, void* ptr)
{
qse_awk_free (rtx->awk, ptr);
qse_awk_freemem (rtx->awk, ptr);
}

View File

@ -1,5 +1,5 @@
/*
* $Id: std.c 481 2011-05-25 14:42:26Z hyunghwan.chung $
* $Id: std.c 510 2011-07-20 16:17:16Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -1013,7 +1013,7 @@ static int open_rio_console (qse_awk_rtx_t* rtx, qse_awk_rio_arg_t* riod)
if (out.u.cpldup.len == 0)
{
/* the name is empty */
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
rxtn->c.in.index++;
goto nextfile;
}
@ -1031,7 +1031,7 @@ static int open_rio_console (qse_awk_rtx_t* rtx, qse_awk_rio_arg_t* riod)
qse_awk_rtx_seterrnum (
rtx, QSE_AWK_EIONMNL, &errarg);
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
return -1;
}
@ -1056,7 +1056,7 @@ static int open_rio_console (qse_awk_rtx_t* rtx, qse_awk_rio_arg_t* riod)
qse_awk_rtx_seterrnum (
rtx, QSE_AWK_EOPEN, &errarg);
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
return -1;
}
}
@ -1065,11 +1065,11 @@ static int open_rio_console (qse_awk_rtx_t* rtx, qse_awk_rio_arg_t* riod)
rtx, file, qse_strlen(file)) <= -1)
{
if (sio != qse_sio_in) qse_sio_close (sio);
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
return -1;
}
qse_awk_rtx_free (rtx, out.u.cpldup.ptr);
qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr);
riod->handle = sio;
/* increment the counter of files successfully opened */
@ -1465,7 +1465,7 @@ static int fnc_system (qse_awk_rtx_t* run, const qse_cstr_t* fnm)
char* mbs;
qse_size_t mbl;
mbs = (char*) qse_awk_alloc (run->awk, len*5+1);
mbs = (char*) qse_awk_allocmem (run->awk, len*5+1);
if (mbs == QSE_NULL)
{
n = -1;
@ -1489,7 +1489,7 @@ static int fnc_system (qse_awk_rtx_t* run, const qse_cstr_t* fnm)
n = system (mbs);
skip_system_mbs:
qse_awk_free (run->awk, mbs);
qse_awk_freemem (run->awk, mbs);
}
#endif