Main Page | Class List | Directories | File List | Class Members | File Members

object.h File Reference

#include "global.h"
#include "svalue.h"
#include "dmalloc.h"
#include "block_alloc_h.h"

Go to the source code of this file.

Classes

struct  object

Defines

#define free_object(O)
#define PIKE_OBJ_STORAGE(O)   ((O)->storage)
#define LOW_GET_GLOBAL(O, I, ID)   (PIKE_OBJ_STORAGE((O))+INHERIT_FROM_INT((O)->prog, (I))->storage_offset+(ID)->func.offset)
#define GET_GLOBAL(O, I)   LOW_GET_GLOBAL(O,I,ID_FROM_INT((O)->prog,I))
#define this_object()   (add_ref(Pike_fp->current_object), Pike_fp->current_object)
#define destruct(o)   destruct_object (o, DESTRUCT_EXPLICIT)
#define clone_object   debug_clone_object
#define master()   debug_master()
#define gc_cycle_check_object(X, WEAK)   gc_cycle_enqueue((gc_cycle_check_cb *) real_gc_cycle_check_object, (X), (WEAK))
#define PIKE_OBJ_DESTRUCTED(o)   (!(o)->prog)
#define PIKE_OBJ_INITED(o)   (o->prog && (o->prog->flags & PROGRAM_PASS_1_DONE) && !((o->prog->flags & PROGRAM_AVOID_CHECK)))
#define destruct_objects_to_destruct()   do{ if(objects_to_destruct) low_destruct_objects_to_destruct(); }while(0)
#define low_index_current_object_no_free(TO, FUN)

Enumerations

enum  object_destruct_reason { DESTRUCT_EXPLICIT = 0, DESTRUCT_CLEANUP = 1, DESTRUCT_NO_REFS, DESTRUCT_GC }

Functions

 BLOCK_ALLOC_FILL_PAGES (object, 2)
PMOD_EXPORT struct objectlow_clone (struct program *p)
PMOD_EXPORT void call_c_initializers (struct object *o)
void call_prog_event (struct object *o, int event)
void call_pike_initializers (struct object *o, int args)
PMOD_EXPORT void do_free_object (struct object *o)
PMOD_EXPORT struct objectdebug_clone_object (struct program *p, int args)
PMOD_EXPORT struct objectfast_clone_object (struct program *p)
PMOD_EXPORT struct objectparent_clone_object (struct program *p, struct object *parent, ptrdiff_t parent_identifier, int args)
PMOD_EXPORT struct objectclone_object_from_object (struct object *o, int args)
objectdecode_value_clone_object (struct svalue *prog)
PMOD_EXPORT struct objectget_master (void)
PMOD_EXPORT struct objectdebug_master (void)
 PTR_HASH_ALLOC (destroy_called_mark, 128)
PMOD_EXPORT struct programget_program_for_object_being_destructed (struct object *o)
PMOD_EXPORT void destruct_object (struct object *o, enum object_destruct_reason reason)
void low_destruct_objects_to_destruct (void)
void destruct_objects_to_destruct_cb (void)
PMOD_EXPORT void schedule_really_free_object (struct object *o)
PMOD_EXPORT void low_object_index_no_free (struct svalue *to, struct object *o, ptrdiff_t f)
PMOD_EXPORT void object_index_no_free2 (struct svalue *to, struct object *o, struct svalue *key)
PMOD_EXPORT void object_index_no_free (struct svalue *to, struct object *o, struct svalue *key)
PMOD_EXPORT void object_low_set_index (struct object *o, int f, struct svalue *from)
PMOD_EXPORT void object_set_index2 (struct object *o, struct svalue *key, struct svalue *from)
PMOD_EXPORT void object_set_index (struct object *o, struct svalue *key, struct svalue *from)
anythingobject_get_item_ptr (struct object *o, struct svalue *key, TYPE_T type)
PMOD_EXPORT int object_equal_p (struct object *a, struct object *b, struct processing *p)
PMOD_EXPORT struct arrayobject_indices (struct object *o)
PMOD_EXPORT struct arrayobject_values (struct object *o)
PMOD_EXPORT void gc_mark_object_as_referenced (struct object *o)
PMOD_EXPORT void real_gc_cycle_check_object (struct object *o, int weak)
unsigned gc_touch_all_objects (void)
void gc_check_all_objects (void)
void gc_mark_all_objects (void)
void gc_cycle_check_all_objects (void)
void gc_zap_ext_weak_refs_in_objects (void)
size_t gc_free_all_unreferenced_objects (void)
void push_magic_index (struct program *type, int inherit_no, int parent_level)
void init_object (void)
void exit_object (void)
void check_object_context (struct object *o, struct program *context_prog, char *current_storage)
void check_object (struct object *o)
void check_all_objects (void)

Variables

PMOD_EXPORT struct objectfirst_object
objectgc_internal_object
objectobjects_to_destruct
objectmaster_object
programmaster_program
programmagic_index_program
programmagic_set_index_program
programmagic_indices_program
programmagic_values_program


Define Documentation

#define clone_object   debug_clone_object
 

#define destruct  )     destruct_object (o, DESTRUCT_EXPLICIT)
 

 
#define destruct_objects_to_destruct  )     do{ if(objects_to_destruct) low_destruct_objects_to_destruct(); }while(0)
 

#define free_object  ) 
 

Value:

do{                                             \
    struct object *o_=(O);                                              \
    debug_malloc_touch(o_);                                             \
    debug_malloc_touch(o_->storage);                                    \
    DO_IF_DEBUG (                                                       \
      DO_IF_PIKE_CLEANUP (                                              \
        if (gc_external_refs_zapped)                                    \
          gc_check_zapped (o_, PIKE_T_OBJECT, __FILE__, __LINE__)));    \
    if(!sub_ref(o_))                                                    \
      schedule_really_free_object(o_);                                  \
  }while(0)

#define gc_cycle_check_object X,
WEAK   )     gc_cycle_enqueue((gc_cycle_check_cb *) real_gc_cycle_check_object, (X), (WEAK))
 

#define GET_GLOBAL O,
 )     LOW_GET_GLOBAL(O,I,ID_FROM_INT((O)->prog,I))
 

#define LOW_GET_GLOBAL O,
I,
ID   )     (PIKE_OBJ_STORAGE((O))+INHERIT_FROM_INT((O)->prog, (I))->storage_offset+(ID)->func.offset)
 

#define low_index_current_object_no_free TO,
FUN   ) 
 

Value:

low_object_index_no_free((TO), Pike_fp->current_object,         \
                           Pike_fp->context.identifier_level + (FUN))

 
#define master  )     debug_master()
 

#define PIKE_OBJ_DESTRUCTED  )     (!(o)->prog)
 

#define PIKE_OBJ_INITED  )     (o->prog && (o->prog->flags & PROGRAM_PASS_1_DONE) && !((o->prog->flags & PROGRAM_AVOID_CHECK)))
 

#define PIKE_OBJ_STORAGE  )     ((O)->storage)
 

 
#define this_object  )     (add_ref(Pike_fp->current_object), Pike_fp->current_object)
 


Enumeration Type Documentation

enum object_destruct_reason
 

Enumeration values:
DESTRUCT_EXPLICIT 
DESTRUCT_CLEANUP 
DESTRUCT_NO_REFS 
DESTRUCT_GC 


Function Documentation

BLOCK_ALLOC_FILL_PAGES object  ,
 

PMOD_EXPORT void call_c_initializers struct object o  ) 
 

void call_pike_initializers struct object o,
int  args
 

void call_prog_event struct object o,
int  event
 

void check_all_objects void   ) 
 

void check_object struct object o  ) 
 

void check_object_context struct object o,
struct program context_prog,
char *  current_storage
 

PMOD_EXPORT struct object* clone_object_from_object struct object o,
int  args
 

PMOD_EXPORT struct object* debug_clone_object struct program p,
int  args
 

PMOD_EXPORT struct object* debug_master void   ) 
 

struct object* decode_value_clone_object struct svalue prog  ) 
 

PMOD_EXPORT void destruct_object struct object o,
enum object_destruct_reason  reason
 

void destruct_objects_to_destruct_cb void   ) 
 

PMOD_EXPORT void do_free_object struct object o  ) 
 

void exit_object void   ) 
 

PMOD_EXPORT struct object* fast_clone_object struct program p  ) 
 

void gc_check_all_objects void   ) 
 

void gc_cycle_check_all_objects void   ) 
 

size_t gc_free_all_unreferenced_objects void   ) 
 

void gc_mark_all_objects void   ) 
 

PMOD_EXPORT void gc_mark_object_as_referenced struct object o  ) 
 

unsigned gc_touch_all_objects void   ) 
 

void gc_zap_ext_weak_refs_in_objects void   ) 
 

PMOD_EXPORT struct object* get_master void   ) 
 

PMOD_EXPORT struct program* get_program_for_object_being_destructed struct object o  ) 
 

void init_object void   ) 
 

PMOD_EXPORT struct object* low_clone struct program p  ) 
 

void low_destruct_objects_to_destruct void   ) 
 

PMOD_EXPORT void low_object_index_no_free struct svalue to,
struct object o,
ptrdiff_t  f
 

PMOD_EXPORT int object_equal_p struct object a,
struct object b,
struct processing p
 

union anything* object_get_item_ptr struct object o,
struct svalue key,
TYPE_T  type
 

PMOD_EXPORT void object_index_no_free struct svalue to,
struct object o,
struct svalue key
 

PMOD_EXPORT void object_index_no_free2 struct svalue to,
struct object o,
struct svalue key
 

PMOD_EXPORT struct array* object_indices struct object o  ) 
 

PMOD_EXPORT void object_low_set_index struct object o,
int  f,
struct svalue from
 

PMOD_EXPORT void object_set_index struct object o,
struct svalue key,
struct svalue from
 

PMOD_EXPORT void object_set_index2 struct object o,
struct svalue key,
struct svalue from
 

PMOD_EXPORT struct array* object_values struct object o  ) 
 

PMOD_EXPORT struct object* parent_clone_object struct program p,
struct object parent,
ptrdiff_t  parent_identifier,
int  args
 

PTR_HASH_ALLOC destroy_called_mark  ,
128 
 

void push_magic_index struct program type,
int  inherit_no,
int  parent_level
 

PMOD_EXPORT void real_gc_cycle_check_object struct object o,
int  weak
 

PMOD_EXPORT void schedule_really_free_object struct object o  ) 
 


Variable Documentation

PMOD_EXPORT struct object* first_object
 

struct object* gc_internal_object
 

struct program* magic_index_program
 

struct program* magic_indices_program
 

struct program* magic_set_index_program
 

struct program* magic_values_program
 

struct object* master_object
 

struct program* master_program
 

struct object* objects_to_destruct
 


Generated on Fri Jul 22 23:44:29 2005 for Pike by  doxygen 1.3.9.1