| 1091 | |
| 1092 | |
| 1093 | static st_plugin_int *plugin_insert_or_reuse(struct st_plugin_int *plugin) |
| 1094 | { |
| 1095 | size_t i; |
| 1096 | struct st_plugin_int *tmp; |
| 1097 | DBUG_ENTER("plugin_insert_or_reuse"); |
| 1098 | for (i= 0; i < plugin_array.elements; i++) |
| 1099 | { |
| 1100 | tmp= *dynamic_element(&plugin_array, i, struct st_plugin_int **); |
| 1101 | if (tmp->state == PLUGIN_IS_FREED) |
| 1102 | { |
| 1103 | memcpy(tmp, plugin, sizeof(struct st_plugin_int)); |
| 1104 | DBUG_RETURN(tmp); |
| 1105 | } |
| 1106 | } |
| 1107 | if (insert_dynamic(&plugin_array, (uchar*)&plugin)) |
| 1108 | DBUG_RETURN(0); |
| 1109 | tmp= *dynamic_element(&plugin_array, plugin_array.elements - 1, |
| 1110 | struct st_plugin_int **)= |
| 1111 | (struct st_plugin_int *) memdup_root(&plugin_mem_root, (uchar*)plugin, |
| 1112 | sizeof(struct st_plugin_int)); |
| 1113 | DBUG_RETURN(tmp); |
| 1114 | } |
| 1115 | |
| 1116 | |
| 1117 | /* |
no test coverage detected