Essen Object Management Library #0002

レイヤ構造

基本型

ValSys

typedef struct Val_ {
    unsigned int linkCount; // プライベートの時は常に1
    unsigned int hash;
    unsigned int flags;
    unsigned int siz, siz1; // siz1まではとりあえずメモリを確保してある
    unsigned int mini[4];
    struct Val_ *typ;
    struct Val_ *link[2]; // 内部管理用であって、ObjSysやEssenはこれを使えない
    void *p;
} Val;

ObjSys

typedef struct Obj_ {
    Val *val;
    Val *parent;
    unsigned int flags;
    unsigned int sign; // シグネチャ  これがあるから消されて再利用されたときに気付くことができる  常に非零
    unsigned int linkCount; // 自分の子がこのObjを指している回数(子以外でもここを参照しているものがあれば数える)
    unsigend int psign; // parentのsign
} Obj;

dir

(dir) {
    [p(Val:typ)]
    [n]
    [p(Obj), sign]
    [p(Obj), sign]
    [p(Obj), sign]
    ...
}

メモ


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS