LuaL_Buffer オブジェクトが「通常の操作中、文字列バッファーは可変数のスタック スロットを使用する」とすると、2 つの luaL_Buffer オブジェクトを同時に使用する方法がわかりません。彼らはそれぞれ、スタックの状態が要求どおりであると想定しますか? 言い換えれば、あるバッファがスタックの一番上に何かを置き、将来の呼び出しでそこにあると期待しているのに、別のバッファにも同じことが当てはまりますか? 2 つの LuaL_Buffer を同時に操作することはできませんか?
同時に 2 つのバッファーを必要とする操作の例を次に示します。小規模なテストでは機能するようですが、本番環境で機能するかどうかはわかりません。
int res;
char *p;
size_t dlen;
struct luaL_Buffer src;
struct luaL_Buffer dst;
luaL_buffinit(L, &src);
luaL_buffinit(L, &dst);
luaL_addvalue(&src);
// .. grow/mod the src buffer in various ways
p = luaL_prepbuffsize(&dst, dlen);
res = my_uncompress((Byte *)(src.b), src.n, (Byte *)p, &dlen);
luaL_addsize(&dst, dlen);
// .. do things to the dst buffer ..
zlibメソッドmy_uncompress
のラッパーはどこですか