Skip to content

Commit 983aabb

Browse files
committed
WL#7801 PERFORMANCE SCHEMA, SETUP_INSTRUMENT METADATA
Improved robustness on Out Of Memory conditions.
1 parent 72cc686 commit 983aabb

File tree

1 file changed

+45
-18
lines changed

1 file changed

+45
-18
lines changed

storage/perfschema/pfs_instr_class.cc

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -386,9 +386,12 @@ cleanup_sync_class(void)
386386
{
387387
unsigned int i;
388388

389-
for (i=0; i<mutex_class_max; i++)
389+
if (mutex_class_array != NULL)
390390
{
391-
my_free(mutex_class_array[i].m_documentation);
391+
for (i=0; i<mutex_class_max; i++)
392+
{
393+
my_free(mutex_class_array[i].m_documentation);
394+
}
392395
}
393396

394397
PFS_FREE_ARRAY(&builtin_memory_mutex_class,
@@ -398,9 +401,12 @@ cleanup_sync_class(void)
398401
mutex_class_array = NULL;
399402
mutex_class_dirty_count = mutex_class_allocated_count = mutex_class_max = 0;
400403

401-
for (i=0; i<rwlock_class_max; i++)
404+
if (rwlock_class_array != NULL)
402405
{
403-
my_free(rwlock_class_array[i].m_documentation);
406+
for (i=0; i<rwlock_class_max; i++)
407+
{
408+
my_free(rwlock_class_array[i].m_documentation);
409+
}
404410
}
405411

406412
PFS_FREE_ARRAY(&builtin_memory_rwlock_class,
@@ -411,9 +417,12 @@ cleanup_sync_class(void)
411417
rwlock_class_dirty_count = rwlock_class_allocated_count = rwlock_class_max =
412418
0;
413419

414-
for (i=0; i<cond_class_max; i++)
420+
if (cond_class_array != NULL)
415421
{
416-
my_free(cond_class_array[i].m_documentation);
422+
for (i=0; i<cond_class_max; i++)
423+
{
424+
my_free(cond_class_array[i].m_documentation);
425+
}
417426
}
418427

419428
PFS_FREE_ARRAY(&builtin_memory_cond_class,
@@ -463,9 +472,12 @@ cleanup_thread_class(void)
463472
{
464473
unsigned int i;
465474

466-
for (i=0; i<thread_class_max; i++)
475+
if (thread_class_array != NULL)
467476
{
468-
my_free(thread_class_array[i].m_documentation);
477+
for (i=0; i<thread_class_max; i++)
478+
{
479+
my_free(thread_class_array[i].m_documentation);
480+
}
469481
}
470482

471483
PFS_FREE_ARRAY(&builtin_memory_thread_class,
@@ -915,9 +927,12 @@ cleanup_file_class(void)
915927
{
916928
unsigned int i;
917929

918-
for (i=0; i<file_class_max; i++)
930+
if (file_class_array != NULL)
919931
{
920-
my_free(file_class_array[i].m_documentation);
932+
for (i=0; i<file_class_max; i++)
933+
{
934+
my_free(file_class_array[i].m_documentation);
935+
}
921936
}
922937

923938
PFS_FREE_ARRAY(&builtin_memory_file_class,
@@ -968,9 +983,12 @@ cleanup_stage_class(void)
968983
{
969984
unsigned int i;
970985

971-
for (i=0; i<stage_class_max; i++)
986+
if (stage_class_array != NULL)
972987
{
973-
my_free(stage_class_array[i].m_documentation);
988+
for (i=0; i<stage_class_max; i++)
989+
{
990+
my_free(stage_class_array[i].m_documentation);
991+
}
974992
}
975993

976994
PFS_FREE_ARRAY(&builtin_memory_stage_class,
@@ -1021,9 +1039,12 @@ cleanup_statement_class(void)
10211039
{
10221040
unsigned int i;
10231041

1024-
for (i=0; i<statement_class_max; i++)
1042+
if (statement_class_array != NULL)
10251043
{
1026-
my_free(statement_class_array[i].m_documentation);
1044+
for (i=0; i<statement_class_max; i++)
1045+
{
1046+
my_free(statement_class_array[i].m_documentation);
1047+
}
10271048
}
10281049

10291050
PFS_FREE_ARRAY(&builtin_memory_statement_class,
@@ -1074,9 +1095,12 @@ cleanup_socket_class(void)
10741095
{
10751096
unsigned int i;
10761097

1077-
for (i=0; i<socket_class_max; i++)
1098+
if (socket_class_array != NULL)
10781099
{
1079-
my_free(socket_class_array[i].m_documentation);
1100+
for (i=0; i<socket_class_max; i++)
1101+
{
1102+
my_free(socket_class_array[i].m_documentation);
1103+
}
10801104
}
10811105

10821106
PFS_FREE_ARRAY(&builtin_memory_socket_class,
@@ -1127,9 +1151,12 @@ cleanup_memory_class(void)
11271151
{
11281152
unsigned int i;
11291153

1130-
for (i=0; i<memory_class_max; i++)
1154+
if (memory_class_array != NULL)
11311155
{
1132-
my_free(memory_class_array[i].m_documentation);
1156+
for (i=0; i<memory_class_max; i++)
1157+
{
1158+
my_free(memory_class_array[i].m_documentation);
1159+
}
11331160
}
11341161

11351162
PFS_FREE_ARRAY(&builtin_memory_memory_class,

0 commit comments

Comments
 (0)