Пример #1
0
/**
 * Initialize GC information for the object
 */
void
ecma_init_gc_info (ecma_object_t *object_p) /**< object */
{
  ecma_gc_set_object_refs (object_p, 1);

  ecma_gc_set_object_next (object_p, ecma_gc_objects_lists[ECMA_GC_COLOR_WHITE_GRAY]);
  ecma_gc_objects_lists[ECMA_GC_COLOR_WHITE_GRAY] = object_p;

  /* Should be set to false at the beginning of garbage collection */
  ecma_gc_set_object_visited (object_p, false);
} /* ecma_init_gc_info */
Пример #2
0
/**
 * Initialize GC information for the object
 */
void
ecma_init_gc_info (ecma_object_t *object_p) /**< object */
{
    ecma_gc_objects_number++;
    ecma_gc_new_objects_since_last_gc++;

    JERRY_ASSERT (ecma_gc_new_objects_since_last_gc <= ecma_gc_objects_number);

    ecma_gc_set_object_refs (object_p, 1);

    ecma_gc_set_object_next (object_p, ecma_gc_objects_lists[ECMA_GC_COLOR_WHITE_GRAY]);
    ecma_gc_objects_lists[ECMA_GC_COLOR_WHITE_GRAY] = object_p;

    /* Should be set to false at the beginning of garbage collection */
    ecma_gc_set_object_visited (object_p, false);
} /* ecma_init_gc_info */
Пример #3
0
/**
 * Decrease reference counter of an object
 */
void
ecma_deref_object (ecma_object_t *object_p) /**< object */
{
    JERRY_ASSERT (ecma_gc_get_object_refs (object_p) > 0);
    ecma_gc_set_object_refs (object_p, ecma_gc_get_object_refs (object_p) - 1);
} /* ecma_deref_object */
Пример #4
0
/**
 * Increase reference counter of an object
 */
void
ecma_ref_object (ecma_object_t *object_p) /**< object */
{
    ecma_gc_set_object_refs (object_p, ecma_gc_get_object_refs (object_p) + 1);
} /* ecma_ref_object */