Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
duk_hthread_alloc.c File Reference
#include "duk_internal.h"

Go to the source code of this file.

Functions

DUK_INTERNAL duk_bool_t duk_hthread_init_stacks (duk_heap *heap, duk_hthread *thr)
 
DUK_INTERNAL void * duk_hthread_get_valstack_ptr (duk_heap *heap, void *ud)
 
DUK_INTERNAL void * duk_hthread_get_callstack_ptr (duk_heap *heap, void *ud)
 
DUK_INTERNAL void * duk_hthread_get_catchstack_ptr (duk_heap *heap, void *ud)
 

Function Documentation

◆ duk_hthread_get_callstack_ptr()

DUK_INTERNAL void * duk_hthread_get_callstack_ptr ( duk_heap * heap,
void * ud )

Definition at line 85 of file duktape-1.5.2/src-separate/duk_hthread_alloc.c.

85 {
86 duk_hthread *thr = (duk_hthread *) ud;
87 DUK_UNREF(heap);
88 return (void *) thr->callstack;
89}

References duk_hthread::callstack, and DUK_UNREF.

◆ duk_hthread_get_catchstack_ptr()

DUK_INTERNAL void * duk_hthread_get_catchstack_ptr ( duk_heap * heap,
void * ud )

Definition at line 91 of file duktape-1.5.2/src-separate/duk_hthread_alloc.c.

91 {
92 duk_hthread *thr = (duk_hthread *) ud;
93 DUK_UNREF(heap);
94 return (void *) thr->catchstack;
95}

References duk_hthread::catchstack, and DUK_UNREF.

◆ duk_hthread_get_valstack_ptr()

DUK_INTERNAL void * duk_hthread_get_valstack_ptr ( duk_heap * heap,
void * ud )

Definition at line 79 of file duktape-1.5.2/src-separate/duk_hthread_alloc.c.

79 {
80 duk_hthread *thr = (duk_hthread *) ud;
81 DUK_UNREF(heap);
82 return (void *) thr->valstack;
83}

References DUK_UNREF, and duk_hthread::valstack.

◆ duk_hthread_init_stacks()

DUK_INTERNAL duk_bool_t duk_hthread_init_stacks ( duk_heap * heap,
duk_hthread * thr )

Definition at line 13 of file duktape-1.5.2/src-separate/duk_hthread_alloc.c.

13 {
14 duk_size_t alloc_size;
15 duk_size_t i;
16
17 DUK_ASSERT(heap != NULL);
18 DUK_ASSERT(thr != NULL);
19 DUK_ASSERT(thr->valstack == NULL);
23 DUK_ASSERT(thr->callstack == NULL);
24 DUK_ASSERT(thr->catchstack == NULL);
25
26 /* valstack */
27 alloc_size = sizeof(duk_tval) * DUK_VALSTACK_INITIAL_SIZE;
28 thr->valstack = (duk_tval *) DUK_ALLOC(heap, alloc_size);
29 if (!thr->valstack) {
30 goto fail;
31 }
32 DUK_MEMZERO(thr->valstack, alloc_size);
34#if !defined(DUK_USE_PREFER_SIZE)
36#endif
37 thr->valstack_bottom = thr->valstack;
38 thr->valstack_top = thr->valstack;
39
40 for (i = 0; i < DUK_VALSTACK_INITIAL_SIZE; i++) {
42 }
43
44 /* callstack */
45 alloc_size = sizeof(duk_activation) * DUK_CALLSTACK_INITIAL_SIZE;
46 thr->callstack = (duk_activation *) DUK_ALLOC(heap, alloc_size);
47 if (!thr->callstack) {
48 goto fail;
49 }
50 DUK_MEMZERO(thr->callstack, alloc_size);
52 DUK_ASSERT(thr->callstack_top == 0);
53
54 /* catchstack */
55 alloc_size = sizeof(duk_catcher) * DUK_CATCHSTACK_INITIAL_SIZE;
56 thr->catchstack = (duk_catcher *) DUK_ALLOC(heap, alloc_size);
57 if (!thr->catchstack) {
58 goto fail;
59 }
60 DUK_MEMZERO(thr->catchstack, alloc_size);
62 DUK_ASSERT(thr->catchstack_top == 0);
63
64 return 1;
65
66 fail:
67 DUK_FREE(heap, thr->valstack);
68 DUK_FREE(heap, thr->callstack);
69 DUK_FREE(heap, thr->catchstack);
70
71 thr->valstack = NULL;
72 thr->callstack = NULL;
73 thr->catchstack = NULL;
74 return 0;
75}
#define DUK_MEMZERO(p, n)
#define DUK_ALLOC(heap, size)
#define DUK_FREE(heap, ptr)
struct duk_tval_struct duk_tval
#define DUK_VALSTACK_INITIAL_SIZE
#define DUK_CATCHSTACK_INITIAL_SIZE
struct duk_activation duk_activation
#define DUK_CALLSTACK_INITIAL_SIZE
#define DUK_TVAL_SET_UNDEFINED(tv)
struct duk_catcher duk_catcher
#define NULL
Definition gmacros.h:924

References duk_hthread::callstack, duk_hthread::callstack_size, duk_hthread::callstack_top, duk_hthread::catchstack, duk_hthread::catchstack_size, duk_hthread::catchstack_top, DUK_ALLOC, DUK_ASSERT, DUK_CALLSTACK_INITIAL_SIZE, DUK_CATCHSTACK_INITIAL_SIZE, DUK_FREE, DUK_MEMZERO, DUK_TVAL_SET_UNDEFINED, DUK_VALSTACK_INITIAL_SIZE, NULL, duk_hthread::valstack, duk_hthread::valstack_bottom, duk_hthread::valstack_end, duk_hthread::valstack_size, and duk_hthread::valstack_top.