int hash_table_remove(struct hash_table* ht, hash_key_t k) { size_t index = lookup_index(ht, k); if ((ssize_t)index == -1) return 0; else { ht->hashes[index] |= 0x80000000; /* Mark as deleted */ --(ht->size); return 1; } }
Exec_stat MCVariableValue::lookup_index(MCExecPoint& ep, uint32_t index, MCVariableValue*& r_value) { return lookup_index(ep, index, true, r_value); }
void* SrHashTableBase::lookup ( const char* st ) const { int id = lookup_index ( st ); return id<0? 0: _table[id].data; }
hash_val_t* hash_table_search(struct hash_table* ht, hash_key_t k) { size_t index = lookup_index(ht, k); return (ssize_t)index == -1 ? 0 : &ht->table[index].val; }
static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { uint64_t value; struct dev_context *devc; int idx; (void)cg; devc = sdi->priv; if (!devc) return SR_ERR_DEV_CLOSED; switch (key) { case SR_CONF_SAMPLERATE: value = g_variant_get_uint64(data); if (value < samplerates[ARRAY_SIZE(samplerates) - 1] || value > samplerates[0]) return SR_ERR_SAMPLERATE; devc->samplerate = value; break; case SR_CONF_LIMIT_MSEC: value = g_variant_get_uint64(data); if (value > MAX_LIMIT_MSEC) return SR_ERR_ARG; devc->limit_msec = value; break; case SR_CONF_LIMIT_SAMPLES: value = g_variant_get_uint64(data); if (value > MAX_LIMIT_SAMPLES) return SR_ERR_ARG; devc->limit_samples = value; break; case SR_CONF_EXTERNAL_CLOCK: devc->cfg_clock_source = (g_variant_get_boolean(data)) ? CLOCK_EXT_CLK : CLOCK_INTERNAL; break; case SR_CONF_CLOCK_EDGE: idx = lookup_index(data, signal_edge_names, ARRAY_SIZE(signal_edge_names)); if (idx < 0) return SR_ERR_ARG; devc->cfg_clock_edge = idx; break; case SR_CONF_TRIGGER_SOURCE: idx = lookup_index(data, trigger_source_names, ARRAY_SIZE(trigger_source_names)); if (idx < 0) return SR_ERR_ARG; devc->cfg_trigger_source = idx; break; case SR_CONF_TRIGGER_SLOPE: idx = lookup_index(data, signal_edge_names, ARRAY_SIZE(signal_edge_names)); if (idx < 0) return SR_ERR_ARG; devc->cfg_trigger_slope = idx; break; default: return SR_ERR_NA; } return SR_OK; }