← Back to team overview

maria-developers team mailing list archive

Re: [Commits] 13ecde8: Fix compiler warnings.

 

Hi Jan!

I have one concern with this patch. See below:
On Thu, 30 Apr 2015 at 11:45 Jan Lindström <jan.lindstrom@xxxxxxxxxxx>
wrote:

> revision-id: 13ecde851f08a7952f774707b19734f351bb6598
> parent(s): 5027e0b035f96e2583eff2d1ac71c7c44a093ac8
> committer: Jan Lindström
> branch nick: 10.0-git
> timestamp: 2015-04-30 11:44:34 +0300
> message:
>
> Fix compiler warnings.
>
> ---
>  storage/innobase/sync/sync0sync.cc | 27 +++++++++++++--------------
>  storage/xtradb/sync/sync0sync.cc   | 27 +++++++++++++--------------
>  2 files changed, 26 insertions(+), 28 deletions(-)
>
> diff --git a/storage/innobase/sync/sync0sync.cc
> b/storage/innobase/sync/sync0sync.cc
> index 121f8e9..78d86f3 100644
> --- a/storage/innobase/sync/sync0sync.cc
> +++ b/storage/innobase/sync/sync0sync.cc
> @@ -862,10 +862,10 @@ sync_thread_levels_g(
>  {
>         ulint           i;
>
> -       for (i = 0; i < arr->n_elems; i++) {
> +       for (i = 0; i < arr->size(); i++) {
>                 const sync_level_t*     slot;
>
> I think this here has to be arr->at(i), or &(*arr)[i]. Doing &arr[i] will
actually get the i'th std::vector<> which does not exist, since arr is a
pointer to only one std::vector<>.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL && slot->level <= limit) {
>                         if (warn) {
> @@ -897,10 +897,10 @@ sync_thread_levels_contain(
>  {
>         ulint           i;
>
> -       for (i = 0; i < arr->n_elems; i++) {
> +       for (i = 0; i < arr->size(); i++) {
>                 const sync_level_t*     slot;
>
> Same here.

> -               slot = &arr->elems[i];

+               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL && slot->level == level) {
>
> @@ -944,10 +944,10 @@ sync_thread_levels_contains(
>
>         arr = thread_slot->levels;
>
> -       for (i = 0; i < arr->n_elems; i++) {
> +       for (i = 0; i < arr->size(); i++) {
>                 sync_level_t*   slot;
>
Same here.

> -               slot = &arr->elems[i];
> +               slot = (sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL && slot->level == level) {
>
> @@ -993,10 +993,10 @@ sync_thread_levels_nonempty_gen(
>
>         arr = thread_slot->levels;
>
> -       for (i = 0; i < arr->n_elems; ++i) {
> +       for (i = 0; i < arr->size(); ++i) {
>                 const sync_level_t*     slot;
>

Same here.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL
>                     && (!dict_mutex_allowed
> @@ -1053,10 +1053,10 @@ sync_thread_levels_nonempty_trx(
>
>         arr = thread_slot->levels;
>
> -       for (i = 0; i < arr->n_elems; ++i) {
> +       for (i = 0; i < arr->size(); ++i) {
>                 const sync_level_t*     slot;
>

Same here.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL
>                     && (!has_search_latch
> @@ -1331,7 +1331,7 @@ sync_thread_add_level(
>
>         sync_level.latch = latch;
>         sync_level.level = level;
> -       array->elems.push_back(sync_level);
> +       array->push_back(sync_level);
>
>         mutex_exit(&sync_thread_mutex);
>  }
> @@ -1377,14 +1377,14 @@ sync_thread_reset_level(
>
>         array = thread_slot->levels;
>
-       for (std::vector<sync_level_t>::iterator it = array->elems.begin();
> it != array->elems.end(); ++it) {
> +       for (std::vector<sync_level_t>::iterator it = array->begin(); it
> != array->end(); ++it) {
>                 sync_level_t level = *it;
>
>                 if (level.latch != latch) {
>                         continue;
>                 }
>
> -               array->elems.erase(it);
> +               array->erase(it);
>                 mutex_exit(&sync_thread_mutex);
>                 return(TRUE);
>         }
> @@ -1471,7 +1471,6 @@ sync_thread_level_arrays_free(void)
>
>                 /* If this slot was allocated then free the slot memory
> too. */
>                 if (slot->levels != NULL) {
> -
>  slot->levels->elems.erase(slot->levels->elems.begin(),slot->levels->elems.end());
>                         delete slot->levels;
>                 }
>         }
> diff --git a/storage/xtradb/sync/sync0sync.cc
> b/storage/xtradb/sync/sync0sync.cc
> index d0e3b71..9dcdd9c 100644
> --- a/storage/xtradb/sync/sync0sync.cc
> +++ b/storage/xtradb/sync/sync0sync.cc
> @@ -970,10 +970,10 @@ sync_thread_levels_g(
>  {
>         ulint           i;
>
> -       for (i = 0; i < arr->n_elems; i++) {
> +       for (i = 0; i < arr->size(); i++) {
>                 const sync_level_t*     slot;
>
> Same here.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL && slot->level <= limit) {
>                         if (warn) {
> @@ -1005,10 +1005,10 @@ sync_thread_levels_contain(
>  {
>         ulint           i;
>
> -       for (i = 0; i < arr->n_elems; i++) {
> +       for (i = 0; i < arr->size(); i++) {
>                 const sync_level_t*     slot;
>
Same here.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL && slot->level == level) {
>
> @@ -1052,10 +1052,10 @@ sync_thread_levels_contains(
>
>         arr = thread_slot->levels;
>
> -       for (i = 0; i < arr->n_elems; i++) {
> +       for (i = 0; i < arr->size(); i++) {
>                 sync_level_t*   slot;
>
> Same here.

> -               slot = &arr->elems[i];
> +               slot = (sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL && slot->level == level) {
>
> @@ -1101,10 +1101,10 @@ sync_thread_levels_nonempty_gen(
>
>         arr = thread_slot->levels;
>
> -       for (i = 0; i < arr->n_elems; ++i) {
> +       for (i = 0; i < arr->size(); ++i) {
>                 const sync_level_t*     slot;
>
> Same here.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL
>                     && (!dict_mutex_allowed
> @@ -1161,10 +1161,10 @@ sync_thread_levels_nonempty_trx(
>
>         arr = thread_slot->levels;
>
> -       for (i = 0; i < arr->n_elems; ++i) {
> +       for (i = 0; i < arr->size(); ++i) {
>                 const sync_level_t*     slot;
>
> Same here.

> -               slot = &arr->elems[i];
> +               slot = (const sync_level_t*)&arr[i];
>
>                 if (slot->latch != NULL
>                     && (!has_search_latch
> @@ -1456,7 +1456,7 @@ sync_thread_add_level(
>
>         sync_level.latch = latch;
>         sync_level.level = level;
> -       array->elems.push_back(sync_level);
> +       array->push_back(sync_level);
>
>         mutex_exit(&sync_thread_mutex);
>  }
> @@ -1502,14 +1502,14 @@ sync_thread_reset_level(
>
>         array = thread_slot->levels;
>
> -       for (std::vector<sync_level_t>::iterator it =
> array->elems.begin(); it != array->elems.end(); ++it) {
> +       for (std::vector<sync_level_t>::iterator it = array->begin(); it
> != array->end(); ++it) {
>                 sync_level_t level = *it;
>
>                 if (level.latch != latch) {
>                         continue;
>                 }
>
> -               array->elems.erase(it);
> +               array->erase(it);
>                 mutex_exit(&sync_thread_mutex);
>                 return(TRUE);
>         }
> @@ -1597,7 +1597,6 @@ sync_thread_level_arrays_free(void)
>
>                 /* If this slot was allocated then free the slot memory
> too. */
>                 if (slot->levels != NULL) {
> -
>  slot->levels->elems.erase(slot->levels->elems.begin(),slot->levels->elems.end());
>                         delete slot->levels;
>                 }
>         }
>