| btree_io_load#(R, ADR, ROOTADR, ISTORE, ISTORE0, GINVAL, GSTORE, GSTORE0, NL, MAXINO, OS, PSTATE, PSYNCED; RN, ZH; ERR) {if RN = null then let IND = ? in {apersistence_read_ind#(ADR, ROOTADR, ISTORE, ISTORE0, GINVAL, GSTORE, GSTORE0, NL, MAXINO, OS, PSTATE, PSYNCED; IND; ERR); if ERR = ESUCCESS then choose R0 with ¬ R0 ∈ ZH ∧ R0 ≠ null in {ZH := ZH ++ R0; ZH[R0] := mkznode(R, mkzbrarray(BRANCH_SIZE), IND.leaf, false, IND.usedsize); RN := R0; let N = 0 in while N < IND.usedsize do {ZH[RN].zbranches[N] := load(IND.branches[N]); N := N + 1}} ifnone ERR := ENOMEM} else ERR := ESUCCESS } |