Github User Fetcher 1.0.0
C Application with Server and GUI
|
#include "duk_internal.h"
Go to the source code of this file.
Definition at line 509 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References DUK_ASSERT, DUK_DD, DUK_DDPRINT, DUK_HEAPHDR_CLEAR_REACHABLE, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_HAS_FINALIZABLE, DUK_HEAPHDR_HAS_FINALIZED, DUK_HEAPHDR_HAS_TEMPROOT, and duk_heap::finalize_list.
Referenced by duk_heap_mark_and_sweep().
Definition at line 482 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References DUK_ASSERT, DUK_DD, DUK_DDPRINT, DUK_HEAPHDR_CLEAR_REACHABLE, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_HAS_FINALIZABLE, DUK_HEAPHDR_HAS_FINALIZED, DUK_HEAPHDR_HAS_TEMPROOT, and duk_heap::refzero_list.
Referenced by duk_heap_mark_and_sweep().
DUK_LOCAL void duk__compact_object_list | ( | duk_heap * | heap, |
duk_hthread * | thr, | ||
duk_heaphdr * | start ) |
Definition at line 952 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__protected_compact_object(), DUK_DD, DUK_DDD, DUK_DDDPRINT, DUK_DDPRINT, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_GET_TYPE, DUK_HOBJECT_GET_ASIZE, DUK_HOBJECT_GET_ESIZE, DUK_HOBJECT_GET_HSIZE, DUK_HOBJECT_P_COMPUTE_SIZE, DUK_HTYPE_OBJECT, duk_push_hobject(), duk_safe_call(), DUK_UNREF, and next.
Referenced by duk__compact_objects().
Definition at line 1001 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__compact_object_list(), duk__get_temp_hthread(), DUK_ASSERT, DUK_D, DUK_DD, DUK_DDPRINT, DUK_DPRINT, duk_heap::finalize_list, duk_heap::heap_allocated, NULL, and duk_heap::refzero_list.
Referenced by duk_heap_mark_and_sweep().
Definition at line 445 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__get_temp_hthread(), DUK_ASSERT, DUK_DD, DUK_DDD, DUK_DDDPRINT, DUK_DDPRINT, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_HAS_REACHABLE, duk_heaphdr_refcount_finalize(), duk_heap::heap_allocated, and NULL.
Referenced by duk_heap_mark_and_sweep().
DUK_LOCAL duk_hthread * duk__get_temp_hthread | ( | duk_heap * | heap | ) |
Definition at line 20 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk_heap::curr_thread, and duk_heap::heap_thread.
Referenced by duk__compact_objects(), duk__finalize_refcounts(), duk__mark_finalizable(), duk__run_object_finalizers(), and duk_heap_mark_and_sweep().
DUK_LOCAL void duk__handle_temproot | ( | duk_heap * | heap, |
duk_heaphdr * | hdr ) |
Definition at line 373 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__mark_heaphdr(), DUK_DDD, DUK_DDDPRINT, DUK_HEAPHDR_CLEAR_REACHABLE, DUK_HEAPHDR_CLEAR_TEMPROOT, and DUK_HEAPHDR_HAS_TEMPROOT.
Referenced by duk__mark_temproots_by_heap_scan().
Definition at line 265 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__get_temp_hthread(), duk__mark_heaphdr(), DUK_ASSERT, DUK_DD, DUK_DDPRINT, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_GET_TYPE, DUK_HEAPHDR_HAS_FINALIZABLE, DUK_HEAPHDR_HAS_FINALIZED, DUK_HEAPHDR_HAS_REACHABLE, DUK_HEAPHDR_HAS_READONLY, DUK_HEAPHDR_SET_FINALIZABLE, duk_hobject_hasprop_raw(), DUK_HTHREAD_STRING_INT_FINALIZER, DUK_HTYPE_OBJECT, duk_heap::heap_allocated, and NULL.
Referenced by duk_heap_mark_and_sweep().
Definition at line 331 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__mark_heaphdr(), DUK_D, DUK_DD, DUK_DDPRINT, DUK_DPRINT, DUK_HEAPHDR_GET_NEXT, and duk_heap::finalize_list.
Referenced by duk_heap_mark_and_sweep().
DUK_LOCAL_DECL void duk__mark_heaphdr | ( | duk_heap * | heap, |
duk_heaphdr * | h ) |
Definition at line 144 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__mark_hobject(), duk__mark_hstring(), DUK_D, DUK_DDD, DUK_DDDPRINT, DUK_DPRINT, DUK_HEAP_SET_MARKANDSWEEP_RECLIMIT_REACHED, DUK_HEAPHDR_GET_TYPE, DUK_HEAPHDR_HAS_REACHABLE, DUK_HEAPHDR_HAS_READONLY, DUK_HEAPHDR_SET_REACHABLE, DUK_HEAPHDR_SET_TEMPROOT, DUK_HTYPE_BUFFER, DUK_HTYPE_OBJECT, DUK_HTYPE_STRING, DUK_UNREACHABLE, DUK_USE_MARK_AND_SWEEP_RECLIMIT, duk_heap::mark_and_sweep_recursion_depth, and NULL.
Referenced by duk__handle_temproot(), duk__mark_finalizable(), duk__mark_finalize_list(), duk__mark_hobject(), duk__mark_refzero_list(), duk__mark_roots_heap(), and duk__mark_tval().
DUK_LOCAL void duk__mark_hobject | ( | duk_heap * | heap, |
duk_hobject * | h ) |
Definition at line 41 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk_hbufferobject::buf, duk_hthread::builtins, duk_hthread::callstack, duk_hthread::callstack_top, duk_hthread::catchstack, duk_hthread::catchstack_top, duk__mark_heaphdr(), duk__mark_tval(), DUK_ACT_GET_FUNC, DUK_ASSERT, DUK_D, DUK_DDD, DUK_DDDPRINT, DUK_DPRINT, DUK_HCOMPILEDFUNCTION_GET_CONSTS_BASE, DUK_HCOMPILEDFUNCTION_GET_CONSTS_END, DUK_HCOMPILEDFUNCTION_GET_DATA, DUK_HCOMPILEDFUNCTION_GET_FUNCS_BASE, DUK_HCOMPILEDFUNCTION_GET_FUNCS_END, DUK_HOBJECT_A_GET_VALUE_PTR, DUK_HOBJECT_E_GET_KEY, DUK_HOBJECT_E_GET_VALUE_PTR, DUK_HOBJECT_E_SLOT_IS_ACCESSOR, DUK_HOBJECT_GET_ASIZE, DUK_HOBJECT_GET_ENEXT, DUK_HOBJECT_GET_PROTOTYPE, DUK_HOBJECT_IS_BUFFEROBJECT, DUK_HOBJECT_IS_COMPILEDFUNCTION, DUK_HOBJECT_IS_NATIVEFUNCTION, DUK_HOBJECT_IS_THREAD, DUK_NUM_BUILTINS, DUK_UNREF, duk_activation::lex_env, NULL, duk_hthread::resumer, duk_hthread::valstack, and duk_activation::var_env.
Referenced by duk__mark_heaphdr().
DUK_LOCAL void duk__mark_hstring | ( | duk_heap * | heap, |
duk_hstring * | h ) |
Definition at line 31 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References DUK_ASSERT, DUK_DDD, DUK_DDDPRINT, and DUK_UNREF.
Referenced by duk__mark_heaphdr().
Definition at line 240 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__mark_heaphdr(), DUK_DD, DUK_DDPRINT, DUK_HEAPHDR_GET_NEXT, and duk_heap::refzero_list.
Referenced by duk_heap_mark_and_sweep().
Definition at line 205 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__mark_heaphdr(), duk__mark_tval(), DUK_DD, DUK_DDPRINT, DUK_HEAP_GET_STRING, DUK_HEAP_NUM_STRINGS, duk_heap::heap_object, duk_heap::heap_thread, duk_heap::lj, duk_ljstate::value1, and duk_ljstate::value2.
Referenced by duk_heap_mark_and_sweep().
Definition at line 390 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__handle_temproot(), DUK_DD, DUK_DDPRINT, DUK_HEAP_CLEAR_MARKANDSWEEP_RECLIMIT_REACHED, DUK_HEAP_HAS_MARKANDSWEEP_RECLIMIT_REACHED, DUK_HEAPHDR_GET_NEXT, duk_heap::heap_allocated, and duk_heap::refzero_list.
Referenced by duk_heap_mark_and_sweep().
DUK_LOCAL_DECL void duk__mark_tval | ( | duk_heap * | heap, |
duk_tval * | tv ) |
Definition at line 191 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__mark_heaphdr(), DUK_DDD, DUK_DDDPRINT, DUK_TVAL_GET_HEAPHDR, and DUK_TVAL_IS_HEAP_ALLOCATED.
Referenced by duk__mark_hobject(), and duk__mark_roots_heap().
DUK_LOCAL int duk__protected_compact_object | ( | duk_context * | ctx | ) |
Definition at line 940 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References DUK_ASSERT, duk_get_hobject(), duk_hobject_compact_props(), and NULL.
Referenced by duk__compact_object_list().
DUK_LOCAL void duk__run_object_finalizers | ( | duk_heap * | heap, |
duk_small_uint_t | flags ) |
Definition at line 875 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk__get_temp_hthread(), DUK_ASSERT, DUK_D, DUK_DD, DUK_DDD, DUK_DDDPRINT, DUK_DDPRINT, DUK_DPRINT, DUK_HEAP_INSERT_INTO_HEAP_ALLOCATED, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_GET_TYPE, DUK_HEAPHDR_HAS_FINALIZABLE, DUK_HEAPHDR_HAS_FINALIZED, DUK_HEAPHDR_HAS_REACHABLE, DUK_HEAPHDR_HAS_READONLY, DUK_HEAPHDR_HAS_TEMPROOT, duk_hobject_run_finalizer(), DUK_HTYPE_OBJECT, DUK_LIKELY, DUK_MS_FLAG_SKIP_FINALIZERS, duk_heap::finalize_list, next, and NULL.
Referenced by duk_heap_mark_and_sweep().
DUK_LOCAL void duk__sweep_heap | ( | duk_heap * | heap, |
duk_int_t | flags, | ||
duk_size_t * | out_count_keep ) |
Definition at line 717 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References DUK_ASSERT, DUK_ASSERT_HEAPHDR_LINKS, DUK_D, DUK_DD, DUK_DDD, DUK_DDDPRINT, DUK_DDPRINT, DUK_DPRINT, duk_heap_free_heaphdr_raw(), DUK_HEAPHDR_CLEAR_FINALIZABLE, DUK_HEAPHDR_CLEAR_FINALIZED, DUK_HEAPHDR_CLEAR_REACHABLE, DUK_HEAPHDR_GET_NEXT, DUK_HEAPHDR_GET_REFCOUNT, DUK_HEAPHDR_GET_TYPE, DUK_HEAPHDR_HAS_FINALIZABLE, DUK_HEAPHDR_HAS_FINALIZED, DUK_HEAPHDR_HAS_REACHABLE, DUK_HEAPHDR_HAS_READONLY, DUK_HEAPHDR_SET_NEXT, DUK_HEAPHDR_SET_PREV, DUK_HTYPE_OBJECT, DUK_HTYPE_STRING, DUK_UNREF, duk_heap::finalize_list, duk_heap::heap_allocated, next, and NULL.
Referenced by duk_heap_mark_and_sweep().
DUK_LOCAL void duk__sweep_stringtable_probe | ( | duk_heap * | heap, |
duk_size_t * | out_count_keep ) |
Definition at line 644 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References DUK_ASSERT, DUK_D, DUK_DD, DUK_DDD, DUK_DDDPRINT, DUK_DDPRINT, DUK_DPRINT, DUK_FREE, duk_free_hstring_inner(), duk_heap_strcache_string_remove(), DUK_HEAPHDR_CLEAR_REACHABLE, DUK_HEAPHDR_GET_REFCOUNT, DUK_HEAPHDR_HAS_REACHABLE, DUK_STRTAB_DELETED_MARKER, duk_heap::heap_udata, NULL, duk_heap::st_size, and duk_heap::strtable.
Referenced by duk_heap_mark_and_sweep().
DUK_INTERNAL duk_bool_t duk_heap_mark_and_sweep | ( | duk_heap * | heap, |
duk_small_uint_t | flags ) |
Definition at line 1151 of file duktape-1.5.2/src-separate/duk_heap_markandsweep.c.
References duk_hthread::callstack, duk_hthread::catchstack, duk__clear_finalize_list_flags(), duk__clear_refzero_list_flags(), duk__compact_objects(), duk__finalize_refcounts(), duk__get_temp_hthread(), duk__mark_finalizable(), duk__mark_finalize_list(), duk__mark_refzero_list(), duk__mark_roots_heap(), duk__mark_temproots_by_heap_scan(), duk__run_object_finalizers(), duk__sweep_heap(), duk__sweep_stringtable_probe(), DUK_ASSERT, DUK_D, DUK_DD, DUK_DDPRINT, DUK_DPRINT, DUK_HEAP_CLEAR_MARKANDSWEEP_RUNNING, duk_heap_force_strtab_resize(), DUK_HEAP_HAS_MARKANDSWEEP_RECLIMIT_REACHED, DUK_HEAP_HAS_MARKANDSWEEP_RUNNING, DUK_HEAP_MARK_AND_SWEEP_TRIGGER_ADD, DUK_HEAP_MARK_AND_SWEEP_TRIGGER_MULT, DUK_HEAP_MARK_AND_SWEEP_TRIGGER_SKIP, DUK_HEAP_SET_MARKANDSWEEP_RUNNING, DUK_MS_FLAG_EMERGENCY, DUK_MS_FLAG_NO_FINALIZERS, DUK_MS_FLAG_NO_OBJECT_COMPACTION, DUK_MS_FLAG_NO_STRINGTABLE_RESIZE, duk_heap::mark_and_sweep_base_flags, duk_heap::mark_and_sweep_recursion_depth, duk_heap::mark_and_sweep_trigger_counter, NULL, and duk_hthread::valstack.