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

object.c File Reference

#include "global.h"
#include "object.h"
#include "dynamic_buffer.h"
#include "interpret.h"
#include "program.h"
#include "stralloc.h"
#include "svalue.h"
#include "pike_macros.h"
#include "pike_memory.h"
#include "pike_error.h"
#include "main.h"
#include "array.h"
#include "gc.h"
#include "backend.h"
#include "callback.h"
#include "cpp.h"
#include "builtin_functions.h"
#include "cyclic.h"
#include "pike_security.h"
#include "module_support.h"
#include "fdlib.h"
#include "mapping.h"
#include "constants.h"
#include "encode.h"
#include "pike_types.h"
#include "operators.h"
#include "block_alloc.h"
#include <sys/stat.h>
#include "dmalloc.h"

Classes

struct  destroy_called_mark
struct  magic_index_struct

Defines

#define sp   Pike_sp
#define COUNT_OTHER()
#define COUNT_OTHER()
#define LOW_PUSH_FRAME(O)
#define LOW_PUSH_FRAME2(O)
#define PUSH_FRAME(O)
#define PUSH_FRAME2(O)   do{LOW_PUSH_FRAME2(O); add_ref(pike_frame->current_object);}while(0)
#define SET_FRAME_CONTEXT(X)
#define LOW_SET_FRAME_CONTEXT(X)
#define LOW_UNSET_FRAME_CONTEXT()
#define CHECK_FRAME()
#define POP_FRAME()
#define POP_FRAME2()
#define LOW_POP_FRAME()
#define ARROW_INDEX_P(X)   ((X)->type==T_STRING && (X)->subtype)
#define MAGIC_THIS   ((struct magic_index_struct *)(CURRENT_STORAGE))
#define MAGIC_O2S(o)   ((struct magic_index_struct *)(o->storage))

Functions

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)
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 *index)
PMOD_EXPORT void object_index_no_free (struct svalue *to, struct object *o, struct svalue *index)
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 *index, struct svalue *from)
PMOD_EXPORT void object_set_index (struct object *o, struct svalue *index, struct svalue *from)
anythingobject_get_item_ptr (struct object *o, struct svalue *index, 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)

Variables

objectmaster_object = 0
programmaster_program = 0
PMOD_EXPORT struct objectfirst_object
objectgc_internal_object = 0
objectobjects_to_destruct = 0
programmagic_index_program = 0
programmagic_set_index_program = 0
programmagic_indices_program = 0
programmagic_values_program = 0

Define Documentation

#define ARROW_INDEX_P  )     ((X)->type==T_STRING && (X)->subtype)
 

 
#define CHECK_FRAME  ) 
 

 
#define COUNT_OTHER  ) 
 

 
#define COUNT_OTHER  ) 
 

Value:

do{                     \
  struct object *o;                             \
  for(o=first_object;o;o=o->next)               \
    if(o->prog)                                 \
      size+=o->prog->storage_needed;            \
                                                \
  for(o=objects_to_destruct;o;o=o->next)        \
    if(o->prog)                                 \
      size+=o->prog->storage_needed;            \
}while(0)

 
#define LOW_POP_FRAME  ) 
 

Value:

add_ref(Pike_fp->current_object); \
  POP_FRAME();

#define LOW_PUSH_FRAME  ) 
 

Value:

do{             \
  struct pike_frame *pike_frame=alloc_pike_frame();             \
  pike_frame->next=Pike_fp;                     \
  pike_frame->current_object=O;                 \
  pike_frame->locals=0;                         \
  pike_frame->num_locals=0;                             \
  pike_frame->fun=-1;                           \
  pike_frame->pc=0;                                     \
  pike_frame->context.prog=0;                        \
  pike_frame->context.parent=0;                        \
  Pike_fp= pike_frame

#define LOW_PUSH_FRAME2  ) 
 

Value:

pike_frame=alloc_pike_frame();          \
  pike_frame->next=Pike_fp;                     \
  pike_frame->current_object=O;                 \
  pike_frame->locals=0;                         \
  pike_frame->num_locals=0;                             \
  pike_frame->fun=-1;                           \
  pike_frame->pc=0;                                     \
  pike_frame->context.prog=0;                        \
  pike_frame->context.parent=0;                        \
  Pike_fp= pike_frame

#define LOW_SET_FRAME_CONTEXT  ) 
 

Value:

pike_frame->context=(X);                                                     \
  pike_frame->fun=pike_frame->context.identifier_level;                      \
  pike_frame->current_storage=o->storage+pike_frame->context.storage_offset; \
  pike_frame->context.parent=0;

 
#define LOW_UNSET_FRAME_CONTEXT  ) 
 

Value:

pike_frame->context.parent=0;                   \
  pike_frame->context.prog=0;                   \
  pike_frame->current_storage=0;                \
  pike_frame->context.parent=0;

#define MAGIC_O2S  )     ((struct magic_index_struct *)(o->storage))
 

#define MAGIC_THIS   ((struct magic_index_struct *)(CURRENT_STORAGE))
 

 
#define POP_FRAME  ) 
 

Value:

CHECK_FRAME()                                   \
  Pike_fp=pike_frame->next;                     \
  pike_frame->next=0;                           \
  free_pike_frame(pike_frame); }while(0)

 
#define POP_FRAME2  ) 
 

Value:

do{CHECK_FRAME()                                \
  Pike_fp=pike_frame->next;                     \
  pike_frame->next=0;                           \
  free_pike_frame(pike_frame);}while(0)

#define PUSH_FRAME  ) 
 

Value:

LOW_PUSH_FRAME(O); \
  add_ref(pike_frame->current_object)

#define PUSH_FRAME2  )     do{LOW_PUSH_FRAME2(O); add_ref(pike_frame->current_object);}while(0)
 

#define SET_FRAME_CONTEXT  ) 
 

Value:

if(pike_frame->context.prog) free_program(pike_frame->context.prog);         \
  pike_frame->context=(X);                                                   \
  pike_frame->fun=pike_frame->context.identifier_level;                      \
  add_ref(pike_frame->context.prog);                                         \
  pike_frame->current_storage=o->storage+pike_frame->context.storage_offset; \
  pike_frame->context.parent=0;

#define sp   Pike_sp
 


Function Documentation

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
 

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 index,
TYPE_T  type
 

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

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

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 index,
struct svalue from
 

PMOD_EXPORT void object_set_index2 struct object o,
struct svalue index,
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
 

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 = 0
 

struct program* magic_index_program = 0
 

struct program* magic_indices_program = 0
 

struct program* magic_set_index_program = 0
 

struct program* magic_values_program = 0
 

struct object* master_object = 0
 

struct program* master_program = 0
 

struct object* objects_to_destruct = 0
 


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