Skip to content

duk_set_top()

1.0.0 stack

プロトタイプ

c
void duk_set_top(duk_context *ctx, duk_idx_t idx);

スタック

| ... | -> | ... |

要約

スタックトップ(スタックサイズ)を引数idxに一致するように設定し、負のインデックス値を正規化します。バリュースタックが縮小する場合、新しいスタックトップより上の値は削除されます。バリュースタックが拡大する場合、未定義の値は新しいスタックスロットにプッシュされます。

負のインデックス値は、他のAPIコールと同様に、現在のスタックトップを基準として解釈されます。例えば、インデックス -1 は、スタックトップを 1 つ減らすことになります。

c
/* Assume stack is empty initially. */

duk_push_int(ctx, 123);  /* -> top=1, stack: [ 123 ] */
duk_set_top(ctx, 3);     /* -> top=3, stack: [ 123 undefined undefined ] */
duk_set_top(ctx, -1);    /* -> top=2, stack: [ 123 undefined ] */
duk_set_top(ctx, 0);     /* -> top=0, stack: [ ] */