mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
perfschema memory related instrumentation changes
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user