Browse Source

Fix -Wclass-memaccess warnings in InnoDB,XtraDB

pull/834/merge
Marko Mäkelä 7 years ago
parent
commit
9dfef6e29b
  1. 2
      storage/innobase/buf/buf0buf.cc
  2. 2
      storage/innobase/buf/buf0lru.cc
  3. 3
      storage/innobase/include/dict0mem.h
  4. 9
      storage/innobase/include/row0ftsort.h
  5. 1
      storage/innobase/row/row0ftsort.cc
  6. 4
      storage/innobase/row/row0import.cc
  7. 2
      storage/innobase/trx/trx0trx.cc
  8. 2
      storage/xtradb/buf/buf0buf.cc
  9. 2
      storage/xtradb/buf/buf0lru.cc
  10. 3
      storage/xtradb/include/dict0mem.h
  11. 9
      storage/xtradb/include/row0ftsort.h
  12. 1
      storage/xtradb/row/row0ftsort.cc
  13. 4
      storage/xtradb/row/row0import.cc
  14. 2
      storage/xtradb/trx/trx0trx.cc

2
storage/innobase/buf/buf0buf.cc

@ -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);

2
storage/innobase/buf/buf0lru.cc

@ -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));

3
storage/innobase/include/dict0mem.h

@ -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) {}
}; };
/**********************************************************************//** /**********************************************************************//**

9
storage/innobase/include/row0ftsort.h

@ -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;

1
storage/innobase/row/row0ftsort.cc

@ -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(

4
storage/innobase/row/row0import.cc

@ -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);

2
storage/innobase/trx/trx0trx.cc

@ -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 = "";

2
storage/xtradb/buf/buf0buf.cc

@ -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);

2
storage/xtradb/buf/buf0lru.cc

@ -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)) {

3
storage/xtradb/include/dict0mem.h

@ -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) {}
}; };
/**********************************************************************//** /**********************************************************************//**

9
storage/xtradb/include/row0ftsort.h

@ -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;

1
storage/xtradb/row/row0ftsort.cc

@ -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(

4
storage/xtradb/row/row0import.cc

@ -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);

2
storage/xtradb/trx/trx0trx.cc

@ -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 = "";

Loading…
Cancel
Save