diff --git a/src/box/phia.c b/src/box/phia.c index 88a325e93a83d2e8c70755cb1a6dc5ff9c4985b9..0d3ed2d896f021c8bb1ee6d85143a5d66196cac0 100644 --- a/src/box/phia.c +++ b/src/box/phia.c @@ -2858,18 +2858,10 @@ struct srconf; typedef int (*srconff)(struct srconf*, struct srconfstmt*); -enum { - SR_RO = 1, - SR_NS = 2 -}; - struct srconf { - char *key; - int flags; - enum sstype type; - srconff function; - void *value; - void *ptr; + char *key; + enum sstype type; + void *value; struct srconf *next; }; @@ -2885,41 +2877,24 @@ struct srconfstmt { struct runtime *r; }; -static int sr_conf_serialize(struct srconf*, struct srconfstmt*); - -static inline struct srconf* -sr_c(struct srconf **link, struct srconf **cp, srconff func, - char *key, int type, - void *value) +static inline struct srconf * +sr_C(struct srconf **link, struct srconf **cp, char *key, + int type, void *value) { struct srconf *c = *cp; + *cp += 1; c->key = key; - c->function = func; - c->flags = 0; c->type = type; c->value = value; - c->ptr = NULL; c->next = NULL; - *cp = c + 1; - if (likely(link)) { - if (likely(*link)) + if (link) { + if (*link) (*link)->next = c; *link = c; } return c; } -static inline struct srconf* -sr_C(struct srconf **link, struct srconf **cp, srconff func, - char *key, int type, - void *value, int flags, void *ptr) -{ - struct srconf *c = sr_c(link, cp, func, key, type, value); - c->flags = flags; - c->ptr = ptr; - return c; -} - static inline char* sr_confkey(struct srconfdump *v) { return (char*)v + sizeof(struct srconfdump); @@ -2931,7 +2906,7 @@ sr_confvalue(struct srconfdump *v) { } static int -sr_conf_serialize(struct srconf *m, struct srconfstmt *s) +sr_valueserialize(struct srconf *m, struct srconfstmt *s) { char buf[128]; void *value = NULL; @@ -2989,29 +2964,31 @@ sr_conf_serialize(struct srconf *m, struct srconfstmt *s) } static inline int -sr_confexec_serialize(struct srconf *c, struct srconfstmt *stmt, char *root) +sr_confserialize(struct srconf *c, struct srconfstmt *stmt) { - char path[256]; + int rc = 0; while (c) { - if (root) - snprintf(path, sizeof(path), "%s.%s", root, c->key); + char path[256]; + const char *old_path = stmt->path; + + if (old_path) + snprintf(path, sizeof(path), "%s.%s", old_path, c->key); else snprintf(path, sizeof(path), "%s", c->key); - int rc; - if (c->flags & SR_NS) { - rc = sr_confexec_serialize(c->value, stmt, path); - if (unlikely(rc == -1)) - return -1; - } else { - stmt->path = path; - rc = c->function(c, stmt); - if (unlikely(rc == -1)) - return -1; - stmt->path = NULL; - } + + stmt->path = path; + + if (c->type == SS_UNDEF) + rc = sr_confserialize(c->value, stmt); + else + rc = sr_valueserialize(c, stmt); + + stmt->path = old_path; + if (rc == -1) + break; c = c->next; } - return 0; + return rc; } @@ -11722,10 +11699,6 @@ struct seconfrt { char build[32]; /* memory */ uint64_t memory_used; - uint32_t pager_pools; - uint32_t pager_pool_size; - uint32_t pager_ref_pools; - uint32_t pager_ref_pool_size; /* scheduler */ char zone[4]; uint32_t checkpoint; @@ -11743,17 +11716,14 @@ struct seconfrt { }; struct seconf { - /* phia */ - char *path; - int recover; - int recover_complete; + /* path to phia_dir */ + char *path; /* compaction */ - struct srzonemap zones; + struct srzonemap zones; /* memory */ - uint64_t memory_limit; - int confmax; - struct srconf *conf; - struct phia_env *env; + uint64_t memory_limit; + struct srconf *conf; + struct phia_env *env; }; static int se_confinit(struct seconf*, struct phia_env *o); @@ -11894,22 +11864,16 @@ phia_env_delete(struct phia_env *e) return rcret; } -static inline int -se_confv(struct srconf *c, struct srconfstmt *s) -{ - return sr_conf_serialize(c, s); -} - static inline struct srconf* se_confphia(struct phia_env *e, struct seconfrt *rt, struct srconf **pc) { struct srconf *phia = *pc; struct srconf *p = NULL; - sr_C(&p, pc, se_confv, "version", SS_STRING, rt->version, SR_RO, NULL); - sr_C(&p, pc, se_confv, "version_storage", SS_STRING, rt->version_storage, SR_RO, NULL); - sr_C(&p, pc, se_confv, "build", SS_STRING, rt->build, SR_RO, NULL); - sr_c(&p, pc, se_confv, "path", SS_STRINGPTR, &e->conf.path); - return sr_C(NULL, pc, NULL, "phia", SS_UNDEF, phia, SR_NS, NULL); + sr_C(&p, pc, "version", SS_STRING, rt->version); + sr_C(&p, pc, "version_storage", SS_STRING, rt->version_storage); + sr_C(&p, pc, "build", SS_STRING, rt->build); + sr_C(&p, pc, "path", SS_STRINGPTR, &e->conf.path); + return sr_C(NULL, pc, "phia", SS_UNDEF, phia); } static inline struct srconf* @@ -11917,13 +11881,13 @@ se_confmemory(struct phia_env *e, struct seconfrt *rt, struct srconf **pc) { struct srconf *memory = *pc; struct srconf *p = NULL; - sr_c(&p, pc, se_confv, "limit", SS_U64, &e->conf.memory_limit); - sr_C(&p, pc, se_confv, "used", SS_U64, &rt->memory_used, SR_RO, NULL); - return sr_C(NULL, pc, NULL, "memory", SS_UNDEF, memory, SR_NS, NULL); + sr_C(&p, pc, "limit", SS_U64, &e->conf.memory_limit); + sr_C(&p, pc, "used", SS_U64, &rt->memory_used); + return sr_C(NULL, pc, "memory", SS_UNDEF, memory); } static inline struct srconf* -se_confcompaction(struct phia_env *e, struct seconfrt *rt ssunused, struct srconf **pc) +se_confcompaction(struct phia_env *e, struct srconf **pc) { struct srconf *compaction = NULL; struct srconf *prev = NULL; @@ -11935,24 +11899,24 @@ se_confcompaction(struct phia_env *e, struct seconfrt *rt ssunused, struct srcon continue; struct srconf *zone = *pc; p = NULL; - sr_c(&p, pc, se_confv, "mode", SS_U32, &z->mode); - sr_c(&p, pc, se_confv, "compact_wm", SS_U32, &z->compact_wm); - sr_c(&p, pc, se_confv, "compact_mode", SS_U32, &z->compact_mode); - sr_c(&p, pc, se_confv, "branch_prio", SS_U32, &z->branch_prio); - sr_c(&p, pc, se_confv, "branch_wm", SS_U32, &z->branch_wm); - sr_c(&p, pc, se_confv, "branch_age", SS_U32, &z->branch_age); - sr_c(&p, pc, se_confv, "branch_age_period", SS_U32, &z->branch_age_period); - sr_c(&p, pc, se_confv, "branch_age_wm", SS_U32, &z->branch_age_wm); - sr_c(&p, pc, se_confv, "gc_wm", SS_U32, &z->gc_wm); - sr_c(&p, pc, se_confv, "gc_prio", SS_U32, &z->gc_prio); - sr_c(&p, pc, se_confv, "gc_period", SS_U32, &z->gc_period); - sr_c(&p, pc, se_confv, "lru_prio", SS_U32, &z->lru_prio); - sr_c(&p, pc, se_confv, "lru_period", SS_U32, &z->lru_period); - prev = sr_C(&prev, pc, NULL, z->name, SS_UNDEF, zone, SR_NS, NULL); + sr_C(&p, pc, "mode", SS_U32, &z->mode); + sr_C(&p, pc, "compact_wm", SS_U32, &z->compact_wm); + sr_C(&p, pc, "compact_mode", SS_U32, &z->compact_mode); + sr_C(&p, pc, "branch_prio", SS_U32, &z->branch_prio); + sr_C(&p, pc, "branch_wm", SS_U32, &z->branch_wm); + sr_C(&p, pc, "branch_age", SS_U32, &z->branch_age); + sr_C(&p, pc, "branch_age_period", SS_U32, &z->branch_age_period); + sr_C(&p, pc, "branch_age_wm", SS_U32, &z->branch_age_wm); + sr_C(&p, pc, "gc_wm", SS_U32, &z->gc_wm); + sr_C(&p, pc, "gc_prio", SS_U32, &z->gc_prio); + sr_C(&p, pc, "gc_period", SS_U32, &z->gc_period); + sr_C(&p, pc, "lru_prio", SS_U32, &z->lru_prio); + sr_C(&p, pc, "lru_period", SS_U32, &z->lru_period); + prev = sr_C(&prev, pc, z->name, SS_UNDEF, zone); if (compaction == NULL) compaction = prev; } - return sr_C(NULL, pc, NULL, "compaction", SS_UNDEF, compaction, SR_NS, NULL); + return sr_C(NULL, pc, "compaction", SS_UNDEF, compaction); } int @@ -11975,61 +11939,61 @@ se_confscheduler(struct seconfrt *rt, struct srconf **pc) { struct srconf *scheduler = *pc; struct srconf *p = NULL; - sr_C(&p, pc, se_confv, "zone", SS_STRING, rt->zone, SR_RO, NULL); - sr_C(&p, pc, se_confv, "gc_active", SS_U32, &rt->gc_active, SR_RO, NULL); - sr_C(&p, pc, se_confv, "lru_active", SS_U32, &rt->lru_active, SR_RO, NULL); - return sr_C(NULL, pc, NULL, "scheduler", SS_UNDEF, scheduler, SR_NS, NULL); + sr_C(&p, pc, "zone", SS_STRING, rt->zone); + sr_C(&p, pc, "gc_active", SS_U32, &rt->gc_active); + sr_C(&p, pc, "lru_active", SS_U32, &rt->lru_active); + return sr_C(NULL, pc, "scheduler", SS_UNDEF, scheduler); } static inline struct srconf* -se_confperformance(struct phia_env *e ssunused, struct seconfrt *rt, struct srconf **pc) +se_confperformance(struct seconfrt *rt, struct srconf **pc) { struct srconf *perf = *pc; struct srconf *p = NULL; - sr_C(&p, pc, se_confv, "documents", SS_U64, &rt->stat.v_count, SR_RO, NULL); - sr_C(&p, pc, se_confv, "documents_used", SS_U64, &rt->stat.v_allocated, SR_RO, NULL); - sr_C(&p, pc, se_confv, "set", SS_U64, &rt->stat.set, SR_RO, NULL); - sr_C(&p, pc, se_confv, "set_latency", SS_STRING, rt->stat.set_latency.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "delete", SS_U64, &rt->stat.del, SR_RO, NULL); - sr_C(&p, pc, se_confv, "delete_latency", SS_STRING, rt->stat.del_latency.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "upsert", SS_U64, &rt->stat.upsert, SR_RO, NULL); - sr_C(&p, pc, se_confv, "upsert_latency", SS_STRING, rt->stat.upsert_latency.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "get", SS_U64, &rt->stat.get, SR_RO, NULL); - sr_C(&p, pc, se_confv, "get_latency", SS_STRING, rt->stat.get_latency.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "get_read_disk", SS_STRING, rt->stat.get_read_disk.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "get_read_cache", SS_STRING, rt->stat.get_read_cache.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_active_rw", SS_U32, &rt->tx_rw, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_active_ro", SS_U32, &rt->tx_ro, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx", SS_U64, &rt->stat.tx, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_rollback", SS_U64, &rt->stat.tx_rlb, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_conflict", SS_U64, &rt->stat.tx_conflict, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_lock", SS_U64, &rt->stat.tx_lock, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_latency", SS_STRING, rt->stat.tx_latency.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_ops", SS_STRING, rt->stat.tx_stmts.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tx_gc_queue", SS_U32, &rt->tx_gc_queue, SR_RO, NULL); - sr_C(&p, pc, se_confv, "cursor", SS_U64, &rt->stat.cursor, SR_RO, NULL); - sr_C(&p, pc, se_confv, "cursor_latency", SS_STRING, rt->stat.cursor_latency.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "cursor_read_disk", SS_STRING, rt->stat.cursor_read_disk.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "cursor_read_cache", SS_STRING, rt->stat.cursor_read_cache.sz, SR_RO, NULL); - sr_C(&p, pc, se_confv, "cursor_ops", SS_STRING, rt->stat.cursor_ops.sz, SR_RO, NULL); - return sr_C(NULL, pc, NULL, "performance", SS_UNDEF, perf, SR_NS, NULL); + sr_C(&p, pc, "documents", SS_U64, &rt->stat.v_count); + sr_C(&p, pc, "documents_used", SS_U64, &rt->stat.v_allocated); + sr_C(&p, pc, "set", SS_U64, &rt->stat.set); + sr_C(&p, pc, "set_latency", SS_STRING, rt->stat.set_latency.sz); + sr_C(&p, pc, "delete", SS_U64, &rt->stat.del); + sr_C(&p, pc, "delete_latency", SS_STRING, rt->stat.del_latency.sz); + sr_C(&p, pc, "upsert", SS_U64, &rt->stat.upsert); + sr_C(&p, pc, "upsert_latency", SS_STRING, rt->stat.upsert_latency.sz); + sr_C(&p, pc, "get", SS_U64, &rt->stat.get); + sr_C(&p, pc, "get_latency", SS_STRING, rt->stat.get_latency.sz); + sr_C(&p, pc, "get_read_disk", SS_STRING, rt->stat.get_read_disk.sz); + sr_C(&p, pc, "get_read_cache", SS_STRING, rt->stat.get_read_cache.sz); + sr_C(&p, pc, "tx_active_rw", SS_U32, &rt->tx_rw); + sr_C(&p, pc, "tx_active_ro", SS_U32, &rt->tx_ro); + sr_C(&p, pc, "tx", SS_U64, &rt->stat.tx); + sr_C(&p, pc, "tx_rollback", SS_U64, &rt->stat.tx_rlb); + sr_C(&p, pc, "tx_conflict", SS_U64, &rt->stat.tx_conflict); + sr_C(&p, pc, "tx_lock", SS_U64, &rt->stat.tx_lock); + sr_C(&p, pc, "tx_latency", SS_STRING, rt->stat.tx_latency.sz); + sr_C(&p, pc, "tx_ops", SS_STRING, rt->stat.tx_stmts.sz); + sr_C(&p, pc, "tx_gc_queue", SS_U32, &rt->tx_gc_queue); + sr_C(&p, pc, "cursor", SS_U64, &rt->stat.cursor); + sr_C(&p, pc, "cursor_latency", SS_STRING, rt->stat.cursor_latency.sz); + sr_C(&p, pc, "cursor_read_disk", SS_STRING, rt->stat.cursor_read_disk.sz); + sr_C(&p, pc, "cursor_read_cache", SS_STRING, rt->stat.cursor_read_cache.sz); + sr_C(&p, pc, "cursor_ops", SS_STRING, rt->stat.cursor_ops.sz); + return sr_C(NULL, pc, "performance", SS_UNDEF, perf); } static inline struct srconf* -se_confmetric(struct phia_env *e ssunused, struct seconfrt *rt, struct srconf **pc) +se_confmetric(struct seconfrt *rt, struct srconf **pc) { struct srconf *metric = *pc; struct srconf *p = NULL; - sr_C(&p, pc, se_confv, "lsn", SS_U64, &rt->seq.lsn, SR_RO, NULL); - sr_C(&p, pc, se_confv, "tsn", SS_U64, &rt->seq.tsn, SR_RO, NULL); - sr_C(&p, pc, se_confv, "nsn", SS_U64, &rt->seq.nsn, SR_RO, NULL); - sr_C(&p, pc, se_confv, "dsn", SS_U32, &rt->seq.dsn, SR_RO, NULL); - sr_C(&p, pc, se_confv, "lfsn", SS_U64, &rt->seq.lfsn, SR_RO, NULL); - return sr_C(NULL, pc, NULL, "metric", SS_UNDEF, metric, SR_NS, NULL); + sr_C(&p, pc, "lsn", SS_U64, &rt->seq.lsn); + sr_C(&p, pc, "tsn", SS_U64, &rt->seq.tsn); + sr_C(&p, pc, "nsn", SS_U64, &rt->seq.nsn); + sr_C(&p, pc, "dsn", SS_U32, &rt->seq.dsn); + sr_C(&p, pc, "lfsn", SS_U64, &rt->seq.lfsn); + return sr_C(NULL, pc, "metric", SS_UNDEF, metric); } static inline struct srconf* -se_confdb(struct phia_env *e, struct seconfrt *rt ssunused, struct srconf **pc) +se_confdb(struct phia_env *e, struct srconf **pc) { struct srconf *db = NULL; struct srconf *prev = NULL; @@ -12043,29 +12007,29 @@ se_confdb(struct phia_env *e, struct seconfrt *rt ssunused, struct srconf **pc) /* database index */ struct srconf *database = *pc; p = NULL; - sr_C(&p, pc, se_confv, "memory_used", SS_U64, &o->rtp.memory_used, SR_RO, NULL); - sr_C(&p, pc, se_confv, "size", SS_U64, &o->rtp.total_node_size, SR_RO, NULL); - sr_C(&p, pc, se_confv, "size_uncompressed", SS_U64, &o->rtp.total_node_origin_size, SR_RO, NULL); - sr_C(&p, pc, se_confv, "size_amqf", SS_U64, &o->rtp.total_amqf_size, SR_RO, NULL); - sr_C(&p, pc, se_confv, "count", SS_U64, &o->rtp.count, SR_RO, NULL); - sr_C(&p, pc, se_confv, "count_dup", SS_U64, &o->rtp.count_dup, SR_RO, NULL); - sr_C(&p, pc, se_confv, "read_disk", SS_U64, &o->rtp.read_disk, SR_RO, NULL); - sr_C(&p, pc, se_confv, "read_cache", SS_U64, &o->rtp.read_cache, SR_RO, NULL); - sr_C(&p, pc, se_confv, "temperature_avg", SS_U32, &o->rtp.temperature_avg, SR_RO, NULL); - sr_C(&p, pc, se_confv, "temperature_min", SS_U32, &o->rtp.temperature_min, SR_RO, NULL); - sr_C(&p, pc, se_confv, "temperature_max", SS_U32, &o->rtp.temperature_max, SR_RO, NULL); - sr_C(&p, pc, se_confv, "temperature_histogram", SS_STRINGPTR, &o->rtp.histogram_temperature_ptr, SR_RO, NULL); - sr_C(&p, pc, se_confv, "node_count", SS_U32, &o->rtp.total_node_count, SR_RO, NULL); - sr_C(&p, pc, se_confv, "branch_count", SS_U32, &o->rtp.total_branch_count, SR_RO, NULL); - sr_C(&p, pc, se_confv, "branch_avg", SS_U32, &o->rtp.total_branch_avg, SR_RO, NULL); - sr_C(&p, pc, se_confv, "branch_max", SS_U32, &o->rtp.total_branch_max, SR_RO, NULL); - sr_C(&p, pc, se_confv, "branch_histogram", SS_STRINGPTR, &o->rtp.histogram_branch_ptr, SR_RO, NULL); - sr_C(&p, pc, se_confv, "page_count", SS_U32, &o->rtp.total_page_count, SR_RO, NULL); - sr_C(&prev, pc, NULL, o->index->conf.name, SS_UNDEF, database, SR_NS, o); + sr_C(&p, pc, "memory_used", SS_U64, &o->rtp.memory_used); + sr_C(&p, pc, "size", SS_U64, &o->rtp.total_node_size); + sr_C(&p, pc, "size_uncompressed", SS_U64, &o->rtp.total_node_origin_size); + sr_C(&p, pc, "size_amqf", SS_U64, &o->rtp.total_amqf_size); + sr_C(&p, pc, "count", SS_U64, &o->rtp.count); + sr_C(&p, pc, "count_dup", SS_U64, &o->rtp.count_dup); + sr_C(&p, pc, "read_disk", SS_U64, &o->rtp.read_disk); + sr_C(&p, pc, "read_cache", SS_U64, &o->rtp.read_cache); + sr_C(&p, pc, "temperature_avg", SS_U32, &o->rtp.temperature_avg); + sr_C(&p, pc, "temperature_min", SS_U32, &o->rtp.temperature_min); + sr_C(&p, pc, "temperature_max", SS_U32, &o->rtp.temperature_max); + sr_C(&p, pc, "temperature_histogram", SS_STRINGPTR, &o->rtp.histogram_temperature_ptr); + sr_C(&p, pc, "node_count", SS_U32, &o->rtp.total_node_count); + sr_C(&p, pc, "branch_count", SS_U32, &o->rtp.total_branch_count); + sr_C(&p, pc, "branch_avg", SS_U32, &o->rtp.total_branch_avg); + sr_C(&p, pc, "branch_max", SS_U32, &o->rtp.total_branch_max); + sr_C(&p, pc, "branch_histogram", SS_STRINGPTR, &o->rtp.histogram_branch_ptr); + sr_C(&p, pc, "page_count", SS_U32, &o->rtp.total_page_count); + sr_C(&prev, pc, o->index->conf.name, SS_UNDEF, database); if (db == NULL) db = prev; } - return sr_C(NULL, pc, NULL, "db", SS_UNDEF, db, SR_NS, NULL); + return sr_C(NULL, pc, "db", SS_UNDEF, db); } static struct srconf* @@ -12075,11 +12039,11 @@ se_confprepare(struct phia_env *e, struct seconfrt *rt, struct srconf *c) struct srconf *pc = c; struct srconf *phia = se_confphia(e, rt, &pc); struct srconf *memory = se_confmemory(e, rt, &pc); - struct srconf *compaction = se_confcompaction(e, rt, &pc); + struct srconf *compaction = se_confcompaction(e, &pc); struct srconf *scheduler = se_confscheduler(rt, &pc); - struct srconf *perf = se_confperformance(e, rt, &pc); - struct srconf *metric = se_confmetric(e, rt, &pc); - struct srconf *db = se_confdb(e, rt, &pc); + struct srconf *perf = se_confperformance(rt, &pc); + struct srconf *metric = se_confmetric(rt, &pc); + struct srconf *db = se_confdb(e, &pc); phia->next = memory; memory->next = compaction; @@ -12140,47 +12104,23 @@ se_confrt(struct phia_env *e, struct seconfrt *rt) return 0; } -static inline int -se_confensure(struct seconf *c) -{ - struct phia_env *e = (struct phia_env*)c->env; - int confmax = 2048; - confmax *= sizeof(struct srconf); - if (likely(confmax <= c->confmax)) - return 0; - struct srconf *cptr = ss_malloc(&e->a, confmax); - if (unlikely(cptr == NULL)) - return sr_oom(); - ss_free(&e->a, c->conf); - c->conf = cptr; - c->confmax = confmax; - return 0; -} - static int se_confserialize(struct seconf *c, struct ssbuf *buf) { - int rc; - rc = se_confensure(c); - if (unlikely(rc == -1)) - return -1; - struct phia_env *e = (struct phia_env*)c->env; + struct phia_env *e = c->env; struct seconfrt rt; se_confrt(e, &rt); - struct srconf *conf = c->conf; - struct srconf *root; - root = se_confprepare(e, &rt, conf); + struct srconf *root = se_confprepare(e, &rt, c->conf); struct srconfstmt stmt = { .path = NULL, .serialize = buf, .r = &e->r }; - return sr_confexec_serialize(root, &stmt, NULL); + return sr_confserialize(root, &stmt); } static int se_confinit(struct seconf *c, struct phia_env *e) { - c->confmax = 2048; - c->conf = ss_malloc(&e->a, sizeof(struct srconf) * c->confmax); + c->conf = ss_malloc(&e->a, sizeof(struct srconf) * 2048); if (unlikely(c->conf == NULL)) return -1; c->env = e; @@ -12189,7 +12129,6 @@ static int se_confinit(struct seconf *c, struct phia_env *e) sr_oom(); return -1; } - c->recover = 1; c->memory_limit = cfg_getd("phia.memory_limit")*1024*1024*1024; struct srzone def = { .enable = 1, @@ -12261,7 +12200,6 @@ static void se_conffree(struct seconf *c) } } - void phia_confcursor_delete(struct phia_confcursor *c) { @@ -12281,7 +12219,7 @@ phia_confcursor_next(struct phia_confcursor *c, const char **key, } else { int size = sizeof(struct srconfdump) + c->pos->keysize + c->pos->valuesize; c->pos = (struct srconfdump*)((char*)c->pos + size); - if ((char*)c->pos >= c->dump.p) + if ((char*)c->pos >= c->dump.p) c->pos = NULL; } if (unlikely(c->pos == NULL))