Description:
Reduce two memset to one memset call for upd_create call.
UNIV_INLINE
upd_t*
upd_create(
/*=======*/
ulint n, /*!< in: number of fields */
mem_heap_t* heap) /*!< in: heap from which memory allocated */
{
upd_t* update;
update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t));
update->n_fields = n;
update->fields = (upd_field_t*)
mem_heap_zalloc(heap, sizeof(upd_field_t) * n);
return(update);
}
there is no need to use two mem_heap_zalloc call.
How to repeat:
N/A
Suggested fix:
diff -rc --exclude='*.orig' --exclude=sql_yacc.cc --exclude=sql_yacc.h mysql-5.6.19/storage/innobase/include/row0upd.ic mysql-5.6.19-patched/storage/innobase/include/row0upd.ic
*** mysql-5.6.19/storage/innobase/include/row0upd.ic 2014-05-06 18:45:59.000000000 +0800
--- mysql-5.6.19-patched/storage/innobase/include/row0upd.ic 2014-07-11 14:01:53.000000000 +0800
***************
*** 44,54 ****
{
upd_t* update;
! update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t));
update->n_fields = n;
! update->fields = (upd_field_t*)
! mem_heap_zalloc(heap, sizeof(upd_field_t) * n);
return(update);
}
--- 44,56 ----
{
upd_t* update;
! /* update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t)); */
! update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t) + sizeof(upd_field_t) * n);
update->n_fields = n;
! /* update->fields = (upd_field_t*)
! mem_heap_zalloc(heap, sizeof(upd_field_t) * n); */
! update->fields = (upd_field_t*)(&update[1]);
return(update);
}
Description: Reduce two memset to one memset call for upd_create call. UNIV_INLINE upd_t* upd_create( /*=======*/ ulint n, /*!< in: number of fields */ mem_heap_t* heap) /*!< in: heap from which memory allocated */ { upd_t* update; update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t)); update->n_fields = n; update->fields = (upd_field_t*) mem_heap_zalloc(heap, sizeof(upd_field_t) * n); return(update); } there is no need to use two mem_heap_zalloc call. How to repeat: N/A Suggested fix: diff -rc --exclude='*.orig' --exclude=sql_yacc.cc --exclude=sql_yacc.h mysql-5.6.19/storage/innobase/include/row0upd.ic mysql-5.6.19-patched/storage/innobase/include/row0upd.ic *** mysql-5.6.19/storage/innobase/include/row0upd.ic 2014-05-06 18:45:59.000000000 +0800 --- mysql-5.6.19-patched/storage/innobase/include/row0upd.ic 2014-07-11 14:01:53.000000000 +0800 *************** *** 44,54 **** { upd_t* update; ! update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t)); update->n_fields = n; ! update->fields = (upd_field_t*) ! mem_heap_zalloc(heap, sizeof(upd_field_t) * n); return(update); } --- 44,56 ---- { upd_t* update; ! /* update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t)); */ ! update = (upd_t*) mem_heap_zalloc(heap, sizeof(upd_t) + sizeof(upd_field_t) * n); update->n_fields = n; ! /* update->fields = (upd_field_t*) ! mem_heap_zalloc(heap, sizeof(upd_field_t) * n); */ ! update->fields = (upd_field_t*)(&update[1]); return(update); }