From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 6D4C74C883; Wed, 20 Jan 2021 10:55:12 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 6D4C74C883 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1611129312; bh=qZxbHx6rfOU1Xf5pp+mAJ5GFFp8JG2gSS5BSZp6e8Tc=; h=To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=CCOp7u/M3SPwaXFP82u6GNGojb+HEo/En8TOMlNGAi6Mrj6TbfuHcIbnh7VvtSYJC 2G87jPS384NqvSc5MOMrwe9HdIBs9urleXg02ulo0JpNRHPVHg1o9lEV7jehCeGFBt xK4HGfNJz7400ow330JUDMsX/qen1bJWKgol2cuo= Received: from smtp57.i.mail.ru (smtp57.i.mail.ru [217.69.128.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 9405C9387A for ; Wed, 20 Jan 2021 10:53:54 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 9405C9387A Received: by smtp57.i.mail.ru with esmtpa (envelope-from ) id 1l28JN-00059t-KQ; Wed, 20 Jan 2021 10:53:54 +0300 To: v.shpilevoy@tarantool.org, alyapunov@tarantool.org Cc: tarantool-patches@dev.tarantool.org, mechanik20051988 Date: Wed, 20 Jan 2021 10:53:40 +0300 Message-Id: X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9D0E79FBC973162CD520EA9A9E182CF906B1BCD0E5756442500894C459B0CD1B9A57CCFADDDFE13B7E68227C012BBBA1F5A6B4612E3BC219B33F93C1B0E960678 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7C3943609F29D73B3EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637F72512A705E00D288638F802B75D45FF5571747095F342E8C7A0BC55FA0FE5FC8504C28B02F6CFC26D83688EDF6A65B674B7BAB27E908D94389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0EF2A066DDA19BA868941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6D52CD31C43BF465FCC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB8D32BA5DBAC0009BE9E8FC8737B5C2249A1DCCEB63E2F10FB76E601842F6C81A12EF20D2F80756B5F7E9C4E3C761E06A776E601842F6C81A127C277FBC8AE2E8BAEB924C2B054B06E3AA81AA40904B5D9DBF02ECDB25306B2B25CBF701D1BE8734AD6D5ED66289B5278DA827A17800CE746D285266DF1BB7967F23339F89546C5A8DF7F3B2552694A6FED454B719173D6725E5C173C3A84C3809F89741C6E521635872C767BF85DA2F004C906525384306FED454B719173D6462275124DF8B9C923A316D17DDAC330E5BFE6E7EFDEDCD789D4C264860C145E X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975C2549B6A8B600A67A90DEA7AD79C4DADFA815CAFA98415BD09C2B6934AE262D3EE7EAB7254005DCED7532B743992DF240BDC6A1CF3F042BAD6DF99611D93F60EF6EA1BA7CA28B4A74699F904B3F4130E343918A1A30D5E7FCCB5012B2E24CD356 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D344B4608D01B1CB59A037FCE9789DC8DE24FA00941A1ED3FCA50D4C4A71814C66366CA1E8511AC84991D7E09C32AA3244CF47F8DA2E2D5399C8708F48A2A0C2C863FD9C8CA1B0515E0927AC6DF5659F194 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2bioj7AvRt3Uvx5TLLtJGB1RhJQ== X-Mailru-Sender: 583F1D7ACE8F49BD901CF26B10B5FEED962675491849D24031DA5471FB808DAF988FD9DDF10FAD7CB79567116EAC6FCF4E830D9205DBEA545646F0D3C63A617F27ACC94E9A535D22112434F685709FCF0DA7A0AF5A3A8387 X-Mras: Ok Subject: [Tarantool-patches] [PATCH v2 2/5] memtx: changed some memtx files from .c to .cc X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: mechanik20051988 via Tarantool-patches Reply-To: mechanik20051988 Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" From: mechanik20051988 --- src/box/CMakeLists.txt | 4 +-- src/box/field_map.h | 8 +++++ src/box/{memtx_engine.c => memtx_engine.cc} | 38 ++++++++++++--------- src/box/{memtx_space.c => memtx_space.cc} | 15 ++++---- 4 files changed, 40 insertions(+), 25 deletions(-) rename src/box/{memtx_engine.c => memtx_engine.cc} (97%) rename src/box/{memtx_space.c => memtx_space.cc} (98%) diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt index 19203f770..d2af89d05 100644 --- a/src/box/CMakeLists.txt +++ b/src/box/CMakeLists.txt @@ -127,8 +127,8 @@ add_library(box STATIC memtx_bitset.c memtx_tx.c engine.c - memtx_engine.c - memtx_space.c + memtx_engine.cc + memtx_space.cc sysview.c blackhole.c service_engine.c diff --git a/src/box/field_map.h b/src/box/field_map.h index d8ef726a1..5087d25e5 100644 --- a/src/box/field_map.h +++ b/src/box/field_map.h @@ -35,6 +35,10 @@ #include #include "bit/bit.h" +#if defined(__cplusplus) +extern "C" { +#endif /* defined(__cplusplus) */ + struct region; struct field_map_builder_slot; @@ -257,4 +261,8 @@ field_map_build_size(struct field_map_builder *builder) void field_map_build(struct field_map_builder *builder, char *buffer); +#if defined(__cplusplus) +} /* extern "C" */ +#endif /* defined(__plusplus) */ + #endif /* TARANTOOL_BOX_FIELD_MAP_H_INCLUDED */ diff --git a/src/box/memtx_engine.c b/src/box/memtx_engine.cc similarity index 97% rename from src/box/memtx_engine.c rename to src/box/memtx_engine.cc index f79f14b4f..520a221dd 100644 --- a/src/box/memtx_engine.c +++ b/src/box/memtx_engine.cc @@ -552,7 +552,7 @@ struct checkpoint { static struct checkpoint * checkpoint_new(const char *snap_dirname, uint64_t snap_io_rate_limit) { - struct checkpoint *ckpt = malloc(sizeof(*ckpt)); + struct checkpoint *ckpt = (struct checkpoint *)malloc(sizeof(*ckpt)); if (ckpt == NULL) { diag_set(OutOfMemory, sizeof(*ckpt), "malloc", "struct checkpoint"); @@ -621,7 +621,7 @@ checkpoint_add_space(struct space *sp, void *data) if (!pk) return 0; struct checkpoint *ckpt = (struct checkpoint *)data; - struct checkpoint_entry *entry = malloc(sizeof(*entry)); + struct checkpoint_entry *entry = (struct checkpoint_entry *)malloc(sizeof(*entry)); if (entry == NULL) { diag_set(OutOfMemory, sizeof(*entry), "malloc", "struct checkpoint_entry"); @@ -851,7 +851,7 @@ struct memtx_join_ctx { static int memtx_join_add_space(struct space *space, void *arg) { - struct memtx_join_ctx *ctx = arg; + struct memtx_join_ctx *ctx = (struct memtx_join_ctx *)arg; if (!space_is_memtx(space)) return 0; if (space_is_temporary(space)) @@ -861,7 +861,7 @@ memtx_join_add_space(struct space *space, void *arg) struct index *pk = space_index(space, 0); if (pk == NULL) return 0; - struct memtx_join_entry *entry = malloc(sizeof(*entry)); + struct memtx_join_entry *entry = (struct memtx_join_entry *)malloc(sizeof(*entry)); if (entry == NULL) { diag_set(OutOfMemory, sizeof(*entry), "malloc", "struct memtx_join_entry"); @@ -881,7 +881,7 @@ static int memtx_engine_prepare_join(struct engine *engine, void **arg) { (void)engine; - struct memtx_join_ctx *ctx = malloc(sizeof(*ctx)); + struct memtx_join_ctx *ctx = (struct memtx_join_ctx *)malloc(sizeof(*ctx)); if (ctx == NULL) { diag_set(OutOfMemory, sizeof(*ctx), "malloc", "struct memtx_join_ctx"); @@ -919,7 +919,7 @@ memtx_join_send_tuple(struct xstream *stream, uint32_t space_id, static int memtx_join_f(va_list ap) { - struct memtx_join_ctx *ctx = va_arg(ap, struct memtx_join_ctx *); + struct memtx_join_ctx *ctx = (struct memtx_join_ctx *)va_arg(ap, struct memtx_join_ctx *); struct memtx_join_entry *entry; rlist_foreach_entry(entry, &ctx->entries, in_ctx) { struct snapshot_iterator *it = entry->iterator; @@ -941,7 +941,7 @@ static int memtx_engine_join(struct engine *engine, void *arg, struct xstream *stream) { (void)engine; - struct memtx_join_ctx *ctx = arg; + struct memtx_join_ctx *ctx = (struct memtx_join_ctx *)arg; ctx->stream = stream; /* * Memtx snapshot iterators are safe to use from another @@ -962,7 +962,7 @@ static void memtx_engine_complete_join(struct engine *engine, void *arg) { (void)engine; - struct memtx_join_ctx *ctx = arg; + struct memtx_join_ctx *ctx = (struct memtx_join_ctx *)arg; struct memtx_join_entry *entry, *next; rlist_foreach_entry_safe(entry, &ctx->entries, in_ctx, next) { entry->iterator->free(entry->iterator); @@ -1066,7 +1066,8 @@ memtx_engine_new(const char *snap_dirname, bool force_recovery, uint64_t tuple_arena_max_size, uint32_t objsize_min, bool dontdump, float alloc_factor) { - struct memtx_engine *memtx = calloc(1, sizeof(*memtx)); + int64_t snap_signature; + struct memtx_engine *memtx = (struct memtx_engine *)calloc(1, sizeof(*memtx)); if (memtx == NULL) { diag_set(OutOfMemory, sizeof(*memtx), "malloc", "struct memtx_engine"); @@ -1090,7 +1091,7 @@ memtx_engine_new(const char *snap_dirname, bool force_recovery, * So if the local directory isn't empty, read the snapshot * signature right now to initialize the instance UUID. */ - int64_t snap_signature = xdir_last_vclock(&memtx->snap_dir, NULL); + snap_signature = xdir_last_vclock(&memtx->snap_dir, NULL); if (snap_signature >= 0) { struct xlog_cursor cursor; if (xdir_open_cursor(&memtx->snap_dir, @@ -1220,15 +1221,19 @@ memtx_tuple_new(struct tuple_format *format, const char *data, const char *end) struct region *region = &fiber()->gc; size_t region_svp = region_used(region); struct field_map_builder builder; + uint32_t field_map_size, data_offset; + size_t tuple_len, total; + char *raw; + if (tuple_field_map_create(format, data, true, &builder) != 0) goto end; - uint32_t field_map_size = field_map_build_size(&builder); + field_map_size = field_map_build_size(&builder); /* * Data offset is calculated from the begin of the struct * tuple base, not from memtx_tuple, because the struct * tuple is not the first field of the memtx_tuple. */ - uint32_t data_offset = sizeof(struct tuple) + field_map_size; + data_offset = sizeof(struct tuple) + field_map_size; if (data_offset > INT16_MAX) { /** tuple->data_offset is 15 bits */ diag_set(ClientError, ER_TUPLE_METADATA_IS_TOO_BIG, @@ -1236,8 +1241,8 @@ memtx_tuple_new(struct tuple_format *format, const char *data, const char *end) goto end; } - size_t tuple_len = end - data; - size_t total = sizeof(struct memtx_tuple) + field_map_size + tuple_len; + tuple_len = end - data; + total = sizeof(struct memtx_tuple) + field_map_size + tuple_len; ERROR_INJECT(ERRINJ_TUPLE_ALLOC, { diag_set(OutOfMemory, total, "slab allocator", "memtx_tuple"); @@ -1250,7 +1255,8 @@ memtx_tuple_new(struct tuple_format *format, const char *data, const char *end) } struct memtx_tuple *memtx_tuple; - while ((memtx_tuple = smalloc(&memtx->alloc, total)) == NULL) { + while ((memtx_tuple = (struct memtx_tuple *) + smalloc(&memtx->alloc, total)) == NULL) { bool stop; memtx_engine_run_gc(memtx, &stop); if (stop) @@ -1269,7 +1275,7 @@ memtx_tuple_new(struct tuple_format *format, const char *data, const char *end) tuple_format_ref(format); tuple->data_offset = data_offset; tuple->is_dirty = false; - char *raw = (char *) tuple + tuple->data_offset; + raw = (char *) tuple + tuple->data_offset; field_map_build(&builder, raw - field_map_size); memcpy(raw, data, tuple_len); say_debug("%s(%zu) = %p", __func__, tuple_len, memtx_tuple); diff --git a/src/box/memtx_space.c b/src/box/memtx_space.cc similarity index 98% rename from src/box/memtx_space.c rename to src/box/memtx_space.cc index 73b4c450e..e46e4eaeb 100644 --- a/src/box/memtx_space.c +++ b/src/box/memtx_space.cc @@ -861,8 +861,8 @@ struct memtx_ddl_state { static int memtx_check_on_replace(struct trigger *trigger, void *event) { - struct txn *txn = event; - struct memtx_ddl_state *state = trigger->data; + struct txn *txn = (struct txn *)event; + struct memtx_ddl_state *state = (struct memtx_ddl_state *)trigger->data; struct txn_stmt *stmt = txn_current_stmt(txn); /* Nothing to check on DELETE. */ @@ -985,8 +985,8 @@ memtx_init_ephemeral_space(struct space *space) static int memtx_build_on_replace(struct trigger *trigger, void *event) { - struct txn *txn = event; - struct memtx_ddl_state *state = trigger->data; + struct txn *txn = (struct txn *)event; + struct memtx_ddl_state *state = (struct memtx_ddl_state *)trigger->data; struct txn_stmt *stmt = txn_current_stmt(txn); struct tuple *cmp_tuple = stmt->new_tuple != NULL ? stmt->new_tuple : @@ -1006,12 +1006,12 @@ memtx_build_on_replace(struct trigger *trigger, void *event) return 0; } - struct tuple *delete = NULL; + struct tuple *unused = nullptr; enum dup_replace_mode mode = state->index->def->opts.is_unique ? DUP_INSERT : DUP_REPLACE_OR_INSERT; state->rc = index_replace(state->index, stmt->old_tuple, - stmt->new_tuple, mode, &delete); + stmt->new_tuple, mode, &unused); if (state->rc != 0) { diag_move(diag_get(), &state->diag); return 0; @@ -1193,7 +1193,8 @@ struct space * memtx_space_new(struct memtx_engine *memtx, struct space_def *def, struct rlist *key_list) { - struct memtx_space *memtx_space = malloc(sizeof(*memtx_space)); + struct memtx_space *memtx_space = + (struct memtx_space *)malloc(sizeof(*memtx_space)); if (memtx_space == NULL) { diag_set(OutOfMemory, sizeof(*memtx_space), "malloc", "struct memtx_space"); -- 2.20.1