diff options
author | Sergei Golubchik <serg@mariadb.org> | 2020-01-29 13:50:26 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2020-03-10 19:24:22 +0100 |
commit | 7c58e97bf6f80a251046c5b3e7bce826fe058bd6 (patch) | |
tree | 7d32d26b320cf83296ee0ede2ea164ad116c4de8 /mysys/array.c | |
parent | 2ac3121af2767186c489054db5d4871d04b8eef4 (diff) | |
download | mariadb-git-7c58e97bf6f80a251046c5b3e7bce826fe058bd6.tar.gz |
perfschema memory related instrumentation changes
Diffstat (limited to 'mysys/array.c')
-rw-r--r-- | mysys/array.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/mysys/array.c b/mysys/array.c index 07abc460de7..20767efdf9e 100644 --- a/mysys/array.c +++ b/mysys/array.c @@ -40,9 +40,9 @@ FALSE Ok */ -my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size, - void *init_buffer, uint init_alloc, - uint alloc_increment, myf my_flags) +my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, PSI_memory_key psi_key, + uint element_size, void *init_buffer, + uint init_alloc, uint alloc_increment, myf my_flags) { DBUG_ENTER("init_dynamic_array2"); if (!alloc_increment) @@ -55,6 +55,7 @@ my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size, array->max_element=init_alloc; array->alloc_increment=alloc_increment; array->size_of_element=element_size; + array->m_psi_key= psi_key; array->malloc_flags= my_flags; DBUG_ASSERT((my_flags & MY_INIT_BUFFER_USED) == 0); if ((array->buffer= init_buffer)) @@ -67,7 +68,7 @@ my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size, should not throw an error */ if (init_alloc && - !(array->buffer= (uchar*) my_malloc(element_size*init_alloc, + !(array->buffer= (uchar*) my_malloc(psi_key, element_size*init_alloc, MYF(my_flags)))) array->max_element=0; DBUG_RETURN(FALSE); @@ -133,7 +134,8 @@ void *alloc_dynamic(DYNAMIC_ARRAY *array) In this scenario, the buffer is statically preallocated, so we have to create an all-new malloc since we overflowed */ - if (!(new_ptr= (char *) my_malloc((array->max_element+ + if (!(new_ptr= (char *) my_malloc(array->m_psi_key, + (array->max_element+ array->alloc_increment) * array->size_of_element, MYF(array->malloc_flags | MY_WME)))) @@ -143,8 +145,8 @@ void *alloc_dynamic(DYNAMIC_ARRAY *array) array->malloc_flags&= ~MY_INIT_BUFFER_USED; } else if (!(new_ptr=(char*) - my_realloc(array->buffer,(array->max_element+ - array->alloc_increment)* + my_realloc(array->m_psi_key, array->buffer, + (array->max_element+ array->alloc_increment) * array->size_of_element, MYF(MY_WME | MY_ALLOW_ZERO_PTR | array->malloc_flags)))) @@ -241,7 +243,7 @@ my_bool allocate_dynamic(DYNAMIC_ARRAY *array, uint max_elements) In this senerio, the buffer is statically preallocated, so we have to create an all-new malloc since we overflowed */ - if (!(new_ptr= (uchar *) my_malloc(size * + if (!(new_ptr= (uchar *) my_malloc(array->m_psi_key, size * array->size_of_element, MYF(array->malloc_flags | MY_WME)))) DBUG_RETURN(0); @@ -249,7 +251,8 @@ my_bool allocate_dynamic(DYNAMIC_ARRAY *array, uint max_elements) array->elements * array->size_of_element); array->malloc_flags&= ~MY_INIT_BUFFER_USED; } - else if (!(new_ptr= (uchar*) my_realloc(array->buffer,size* + else if (!(new_ptr= (uchar*) my_realloc(array->m_psi_key, + array->buffer,size * array->size_of_element, MYF(MY_WME | MY_ALLOW_ZERO_PTR | array->malloc_flags)))) @@ -362,8 +365,8 @@ void freeze_size(DYNAMIC_ARRAY *array) elements= MY_MAX(array->elements, 1); if (array->buffer && array->max_element > elements) { - array->buffer=(uchar*) my_realloc(array->buffer, - elements*array->size_of_element, + array->buffer=(uchar*) my_realloc(array->m_psi_key, array->buffer, + elements * array->size_of_element, MYF(MY_WME | array->malloc_flags)); array->max_element= elements; } |