このページの内容

C APIの関数と型:concat–gc

lua_concat

[-n, +1, e]

void lua_concat (lua_State *L, int n);

スタック最上部のn個の値を連結してポップし、結果を最上部に残します。nが1なら、結果はスタック上の単一の値です(つまり、関数は何もしません)。nが0なら、結果は空文字列です。連結はLuaの通常の意味論に従って実行されます(§3.4.6を参照)。


lua_copy

[-0, +0, –]

void lua_copy (lua_State *L, int fromidx, int toidx);

インデックスfromidxの要素を有効なインデックスtoidxへコピーし、その位置の値を置き換えます。ほかの位置の値には影響しません。


lua_createtable

[-0, +1, m]

void lua_createtable (lua_State *L, int nseq, int nrec);

新しい空のテーブルを作成し、スタックへプッシュします。引数nseqはテーブルがシーケンスとして持つ要素数のヒント、引数nrecはテーブルが持つそのほかの要素数のヒントです。Luaはこれらのヒントを使い、新しいテーブルのメモリを事前に割り当てることがあります。テーブルの要素数が事前に分かっている場合、この事前割り当ては性能向上に役立つことがあります。それ以外の場合は関数lua_newtableを使うべきです。


lua_dump

[-0, +0, –]

int lua_dump (lua_State *L,
                        lua_Writer writer,
                        void *data,
                        int strip);

関数をバイナリチャンクとしてダンプします。スタック最上部のLua関数を受け取り、再び読み込むとダンプした関数と等価な関数になるバイナリチャンクを生成します。チャンクの各部分を生成するとき、lua_dumpは、指定されたdataを使って書き込むために関数writerlua_Writerを参照)を呼び出します。

関数lua_dumpはwriter関数の呼び出しを通じてLuaスタックを完全に保持します。ただし、最初の呼び出し前に内部使用の値をいくつかプッシュする場合があり、最後の呼び出し後にスタックサイズを元のサイズへ戻します。

stripがtrueなら、容量を節約するため、バイナリ表現に関数のすべてのデバッグ情報を含めない場合があります。

返される値はwriterの最後の呼び出しが返したエラーコードです。0はエラーなしを意味します。


lua_error

[-1, +0, v]

int lua_error (lua_State *L);

スタック最上部の値をエラーオブジェクトとしてLuaエラーを発生させます。この関数はロングジャンプを行うため、決して返りません(luaL_errorを参照)。


lua_gc

[-0, +0, –]

int lua_gc (lua_State *L, int what, ...);

ガベージコレクターを制御します。

この関数は引数whatの値に従って複数の処理を行います。追加引数が必要なオプションでは、オプションの後に記載しています。

  • LUA_GCCOLLECT:完全なガベージコレクションサイクルを実行します。

  • LUA_GCSTOP:ガベージコレクターを停止します。

  • LUA_GCRESTART:ガベージコレクターを再開します。

  • LUA_GCCOUNT:Luaが使用中の現在のメモリ量をKbyte単位で返します。

  • LUA_GCCOUNTB:Luaが使用中の現在のメモリのバイト数を1024で割った余りを返します。

  • LUA_GCSTEP (size_t n):ガベージコレクションのステップを実行します。

  • LUA_GCISRUNNING:コレクターが実行中(つまり停止していない)かを示すブール値を返します。

  • LUA_GCINC:コレクターをインクリメンタルモードへ変更します。以前のモード(LUA_GCGENまたはLUA_GCINC)を返します。

  • LUA_GCGEN:コレクターを世代別モードへ変更します。以前のモード(LUA_GCGENまたはLUA_GCINC)を返します。

  • LUA_GCPARAM (int param, int val)

    :コレクターの引数値を変更または返します。

    val

    が-1なら、呼び出しは現在の値を返すだけです。引数

    param

    は次の値のいずれかでなければなりません。

    • LUA_GCPMINORMUL

      :マイナー乗数。

    • LUA_GCPMAJORMINOR

      :メジャー・マイナー乗数。

    • LUA_GCPMINORMAJOR

      :マイナー・メジャー乗数。

    • LUA_GCPPAUSE

      :ガベージコレクターの一時停止。

    • LUA_GCPSTEPMUL

      :ステップ乗数。

    • LUA_GCPSTEPSIZE

      :ステップサイズ。

これらのオプションの詳細についてはcollectgarbageを参照してください。

この関数をファイナライザーから呼び出すべきではありません。