56
56
myisam_open_list=list_delete(myisam_open_list,&info->open_list);
57
57
pthread_mutex_unlock(&share->intern_lock);
59
void * rec_buff_ptr= mi_get_rec_buff_ptr(info, info->rec_buff);
60
if (rec_buff_ptr != NULL)
59
my_free(mi_get_rec_buff_ptr(info, info->rec_buff), MYF(MY_ALLOW_ZERO_PTR));
64
62
if (share->kfile >= 0 &&
79
77
if (my_close(share->kfile,MYF(0)))
82
84
if (share->decode_trees)
84
free((unsigned char*) share->decode_trees);
85
free((unsigned char*) share->decode_tables);
86
my_free((uchar*) share->decode_trees,MYF(0));
87
my_free((uchar*) share->decode_tables,MYF(0));
87
89
thr_lock_delete(&share->lock);
88
pthread_mutex_destroy(&share->intern_lock);
90
VOID(pthread_mutex_destroy(&share->intern_lock));
91
93
keys = share->state.header.keys;
92
rwlock_destroy(&share->mmap_lock);
94
VOID(rwlock_destroy(&share->mmap_lock));
93
95
for(i=0; i<keys; i++) {
94
rwlock_destroy(&share->key_root_lock[i]);
96
VOID(rwlock_destroy(&share->key_root_lock[i]));
97
free((unsigned char*) info->s);
99
my_free((uchar*) info->s,MYF(0));
99
101
pthread_mutex_unlock(&THR_LOCK_myisam);
101
103
if (info->dfile >= 0 && my_close(info->dfile,MYF(0)))
102
104
error = my_errno;
104
free((unsigned char*) info);
106
myisam_log_command(MI_LOG_CLOSE,info,NULL,0,error);
107
my_free((uchar*) info,MYF(0));