Fix -Wclass-memaccess warnings in InnoDB,XtraDB

This commit is contained in:
Marko Mäkelä 2018-08-03 11:22:20 +03:00
parent b963cbaf4b
commit 9dfef6e29b
14 changed files with 34 additions and 12 deletions

View File

@ -1611,7 +1611,7 @@ buf_relocate(
} }
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
memcpy(dpage, bpage, sizeof *dpage); new (dpage) buf_page_t(*bpage);
ut_d(bpage->in_LRU_list = FALSE); ut_d(bpage->in_LRU_list = FALSE);
ut_d(bpage->in_page_hash = FALSE); ut_d(bpage->in_page_hash = FALSE);

View File

@ -1849,7 +1849,7 @@ func_exit:
} else if (buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE) { } else if (buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE) {
b = buf_page_alloc_descriptor(); b = buf_page_alloc_descriptor();
ut_a(b); ut_a(b);
memcpy(b, bpage, sizeof *b); new (b) buf_page_t(*bpage);
} }
ut_ad(buf_pool_mutex_own(buf_pool)); ut_ad(buf_pool_mutex_own(buf_pool));

View File

@ -509,6 +509,9 @@ struct dict_field_t{
unsigned fixed_len:10; /*!< 0 or the fixed length of the unsigned fixed_len:10; /*!< 0 or the fixed length of the
column if smaller than column if smaller than
DICT_ANTELOPE_MAX_INDEX_COL_LEN */ DICT_ANTELOPE_MAX_INDEX_COL_LEN */
/** Zero-initialize all fields */
dict_field_t() : col(NULL), name(NULL), prefix_len(0), fixed_len(0) {}
}; };
/**********************************************************************//** /**********************************************************************//**

View File

@ -1,6 +1,7 @@
/***************************************************************************** /*****************************************************************************
Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
@ -106,6 +107,14 @@ struct fts_tokenize_ctx {
ib_rbt_t* cached_stopword;/*!< in: stopword list */ ib_rbt_t* cached_stopword;/*!< in: stopword list */
dfield_t sort_field[FTS_NUM_FIELDS_SORT]; dfield_t sort_field[FTS_NUM_FIELDS_SORT];
/*!< in: sort field */ /*!< in: sort field */
fts_tokenize_ctx() :
processed_len(0), init_pos(0), buf_used(0),
rows_added(), cached_stopword(NULL), sort_field()
{
memset(rows_added, 0, sizeof rows_added);
memset(sort_field, 0, sizeof sort_field);
}
}; };
typedef struct fts_tokenize_ctx fts_tokenize_ctx_t; typedef struct fts_tokenize_ctx fts_tokenize_ctx_t;

View File

@ -638,7 +638,6 @@ fts_parallel_tokenization(
merge_file = psort_info->merge_file; merge_file = psort_info->merge_file;
blob_heap = mem_heap_create(512); blob_heap = mem_heap_create(512);
memset(&doc, 0, sizeof(doc)); memset(&doc, 0, sizeof(doc));
memset(&t_ctx, 0, sizeof(t_ctx));
memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int)); memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int));
doc.charset = fts_index_get_charset( doc.charset = fts_index_get_charset(

View File

@ -2620,8 +2620,6 @@ row_import_cfg_read_index_fields(
dict_field_t* field = index->m_fields; dict_field_t* field = index->m_fields;
memset(field, 0x0, sizeof(*field) * n_fields);
for (ulint i = 0; i < n_fields; ++i, ++field) { for (ulint i = 0; i < n_fields; ++i, ++field) {
byte* ptr = row; byte* ptr = row;
@ -2639,6 +2637,8 @@ row_import_cfg_read_index_fields(
return(DB_IO_ERROR); return(DB_IO_ERROR);
} }
new (field) dict_field_t();
field->prefix_len = mach_read_from_4(ptr); field->prefix_len = mach_read_from_4(ptr);
ptr += sizeof(ib_uint32_t); ptr += sizeof(ib_uint32_t);

View File

@ -140,7 +140,7 @@ trx_create(void)
trx->global_read_view_heap = mem_heap_create(256); trx->global_read_view_heap = mem_heap_create(256);
trx->xid.formatID = -1; trx->xid.null();
trx->op_info = ""; trx->op_info = "";

View File

@ -1718,7 +1718,7 @@ buf_relocate(
} }
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
memcpy(dpage, bpage, sizeof *dpage); new (dpage) buf_page_t(*bpage);
ut_d(bpage->in_LRU_list = FALSE); ut_d(bpage->in_LRU_list = FALSE);
ut_d(bpage->in_page_hash = FALSE); ut_d(bpage->in_page_hash = FALSE);

View File

@ -2112,7 +2112,7 @@ not_freed:
} }
if (b) { if (b) {
memcpy(b, bpage, sizeof *b); new (b) buf_page_t(*bpage);
} }
if (!buf_LRU_block_remove_hashed(bpage, zip)) { if (!buf_LRU_block_remove_hashed(bpage, zip)) {

View File

@ -516,6 +516,9 @@ struct dict_field_t{
unsigned fixed_len:10; /*!< 0 or the fixed length of the unsigned fixed_len:10; /*!< 0 or the fixed length of the
column if smaller than column if smaller than
DICT_ANTELOPE_MAX_INDEX_COL_LEN */ DICT_ANTELOPE_MAX_INDEX_COL_LEN */
/** Zero-initialize all fields */
dict_field_t() : col(NULL), name(NULL), prefix_len(0), fixed_len(0) {}
}; };
/**********************************************************************//** /**********************************************************************//**

View File

@ -1,6 +1,7 @@
/***************************************************************************** /*****************************************************************************
Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
@ -106,6 +107,14 @@ struct fts_tokenize_ctx {
ib_rbt_t* cached_stopword;/*!< in: stopword list */ ib_rbt_t* cached_stopword;/*!< in: stopword list */
dfield_t sort_field[FTS_NUM_FIELDS_SORT]; dfield_t sort_field[FTS_NUM_FIELDS_SORT];
/*!< in: sort field */ /*!< in: sort field */
fts_tokenize_ctx() :
processed_len(0), init_pos(0), buf_used(0),
rows_added(), cached_stopword(NULL), sort_field()
{
memset(rows_added, 0, sizeof rows_added);
memset(sort_field, 0, sizeof sort_field);
}
}; };
typedef struct fts_tokenize_ctx fts_tokenize_ctx_t; typedef struct fts_tokenize_ctx fts_tokenize_ctx_t;

View File

@ -641,7 +641,6 @@ fts_parallel_tokenization(
merge_file = psort_info->merge_file; merge_file = psort_info->merge_file;
blob_heap = mem_heap_create(512); blob_heap = mem_heap_create(512);
memset(&doc, 0, sizeof(doc)); memset(&doc, 0, sizeof(doc));
memset(&t_ctx, 0, sizeof(t_ctx));
memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int)); memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int));
doc.charset = fts_index_get_charset( doc.charset = fts_index_get_charset(

View File

@ -2620,8 +2620,6 @@ row_import_cfg_read_index_fields(
dict_field_t* field = index->m_fields; dict_field_t* field = index->m_fields;
memset(field, 0x0, sizeof(*field) * n_fields);
for (ulint i = 0; i < n_fields; ++i, ++field) { for (ulint i = 0; i < n_fields; ++i, ++field) {
byte* ptr = row; byte* ptr = row;
@ -2639,6 +2637,8 @@ row_import_cfg_read_index_fields(
return(DB_IO_ERROR); return(DB_IO_ERROR);
} }
new (field) dict_field_t();
field->prefix_len = mach_read_from_4(ptr); field->prefix_len = mach_read_from_4(ptr);
ptr += sizeof(ib_uint32_t); ptr += sizeof(ib_uint32_t);

View File

@ -276,7 +276,7 @@ trx_create(void)
trx->distinct_page_access_hash = NULL; trx->distinct_page_access_hash = NULL;
trx->take_stats = FALSE; trx->take_stats = FALSE;
trx->xid.formatID = -1; trx->xid.null();
trx->op_info = ""; trx->op_info = "";