diff --git a/src/api-moddata.c b/src/api-moddata.c index 1dd503538..aa0767142 100644 --- a/src/api-moddata.c +++ b/src/api-moddata.c @@ -195,6 +195,12 @@ void unload_moddata_commit(ModDataInfo *md) md->free(&moddata_client(client, md)); memset(&moddata_client(client, md), 0, sizeof(ModData)); } + list_for_each_entry(client, &unknown_list, lclient_node) + { + if (md->free && moddata_client(client, md).ptr) + md->free(&moddata_client(client, md)); + memset(&moddata_client(client, md), 0, sizeof(ModData)); + } break; } case MODDATATYPE_LOCAL_CLIENT: @@ -206,6 +212,12 @@ void unload_moddata_commit(ModDataInfo *md) md->free(&moddata_local_client(client, md)); memset(&moddata_local_client(client, md), 0, sizeof(ModData)); } + list_for_each_entry(client, &unknown_list, lclient_node) + { + if (md->free && moddata_local_client(client, md).ptr) + md->free(&moddata_local_client(client, md)); + memset(&moddata_local_client(client, md), 0, sizeof(ModData)); + } break; } case MODDATATYPE_CHANNEL: