static status prependChainTable(ChainTable ct, Any name, Any value) { Chain ch; if ( (ch = getMemberHashTable((HashTable) ct, name)) ) prependChain(ch, value); else appendHashTable((HashTable) ct, name, newObject(ClassChain, value, EAV)); succeed; }
char * xpmGetRgbName(void *rgbn, int rgbn_max, int red, int green, int blue) { Int rgb = toInt(RGB(red, green, blue)); HashTable ht = LoadX11ColourNames(); Name name; if ( rgb == ZERO ) return "black"; /* otherwise these come as gray0 */ if ( rgb == toInt(RGB(255,255,255)) ) return "white"; /* and gray100 */ if ( (name = getMemberHashTable(ht, rgb)) ) return strName(name); return NULL; }
static status deleteChainTable(ChainTable ct, Any name, Any value) { Chain ch; if ( isDefault(value) ) return deleteHashTable((HashTable)ct, name); if ( (ch = getMemberHashTable((HashTable) ct, name)) ) { TRY(deleteChain(ch, value)); if ( emptyChain(ch) ) deleteHashTable((HashTable) ct, name); succeed; } fail; }
VOID CALLBACK timer_proc(HWND hwnd, UINT msg, UINT id, DWORD now) { DEBUG(NAME_timer, Cprintf("Firing timer %d\n", id)); if ( TimerTable ) { Timer tm; pceMTLock(LOCK_PCE); if ( (tm = getMemberHashTable(TimerTable, toInt(id))) ) { if ( tm->service == ON ) { ServiceMode(PCE_EXEC_SERVICE, do_timer_proc(tm, id)); } else do_timer_proc(tm, id); pceMTUnlock(LOCK_PCE); return; } pceMTUnlock(LOCK_PCE); } KillTimer(NULL, id); /* Unexpected timer. Get rid of it */ }
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); }
static SyntaxTable getLookupSyntaxTable(Any ctx, Name name) { answer(getMemberHashTable(SyntaxTables, name)); }