static status initialiseConstant(Constant c, Name name, StringObj summary) { protectObject(c); assign(c, name, name); if ( notDefault(summary) ) assign(c, summary, summary); succeed; }
status initialiseImage(Image image, SourceSink data, Int w, Int h, Name kind) { Name name = FAIL; if ( isDefault(data) ) data = (SourceSink) NIL; if ( notNil(data) && hasGetMethodObject(data, NAME_name) ) name = get(data, NAME_name, EAV); if ( !name ) name = NIL; assign(image, name, name); assign(image, background, DEFAULT); assign(image, foreground, DEFAULT); ws_init_image(image); if ( isNil(data) || notDefault(w) || notDefault(h) || notDefault(kind) ) { if ( isDefault(w) ) w = toInt(16); if ( isDefault(h) ) h = toInt(16); if ( isDefault(kind) ) kind = NAME_bitmap; assign(image, kind, kind); assign(image, file, NIL); assign(image, depth, kind == NAME_bitmap ? ONE : (Int) DEFAULT); assign(image, size, newObject(ClassSize, w, h, EAV)); assign(image, access, NAME_both); } else { assign(image, kind, NAME_bitmap); assign(image, file, data); assign(image, depth, ONE); assign(image, size, newObject(ClassSize, EAV)); TRY(loadImage(image, DEFAULT, DEFAULT)); assign(image, access, NAME_read); } if ( notNil(name) ) { protectObject(image); appendHashTable(ImageTable, name, image); } succeed; }
static status initialiseDisplay(DisplayObj d, Name address) { DisplayManager dm = TheDisplayManager(); assign(d, size, NIL); assign(d, address, address); assign(d, font_table, newObject(ClassHashTable, EAV)); assign(d, frames, newObject(ClassChain, EAV)); assign(d, inspect_handlers, newObject(ClassChain, EAV)); assign(d, cache, NIL); assign(d, colour_map, DEFAULT); assign(d, display_manager, dm); assign(d, busy_locks, ZERO); ws_init_display(d); appendDisplayManager(dm, d); protectObject(d); succeed; }
static status initialiseVar(Var v, Type type, Name name, Any value) { if ( isDefault(type) ) type = TypeUnchecked; if ( isDefault(name) ) /* local var */ name = NIL; assign(v, name, name); assign(v, type, type); assign(v, global_value, value); v->value = value; if ( isObject(value) ) addCodeReference(value); if ( notNil(name) ) { if ( getMemberHashTable(VarTable, name) ) errorPce(v, NAME_redeclaredVar); appendHashTable(VarTable, name, v); protectObject(v); } return initialiseFunction((Function) v); }