From 7dc7a1fc2071ca796ca1cbb091a6b97d412a41f1 Mon Sep 17 00:00:00 2001 From: ai4rei Date: Mon, 22 Nov 2010 10:48:57 +0000 Subject: * Fixed a crash when shutting down char-server (TXT only), after it failed to load storage save data (since r1275). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14483 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 1 + src/char/int_storage.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 2286d261a..01d031adf 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -2,6 +2,7 @@ Date Added 2010/11/22 * mail_deliveryfail no longer attempts to log (since r12910) and give items (since r11855), when there is no item attached to the mail (bugreport:3239). [Ai4rei] + * Fixed a crash when shutting down char-server (TXT only), after it failed to load storage save data (since r1275). [Ai4rei] 2010/11/21 * Added msinttypes (rev. 26, http://msinttypes.googlecode.com/svn/trunk/) portability framework for Visual C++ compilers (related bugreport:4059). [Ai4rei] * Added 64-bit variants of the socket and buffer I/O macros. [Ai4rei] diff --git a/src/char/int_storage.c b/src/char/int_storage.c index 09e2f123d..bae72fcf4 100644 --- a/src/char/int_storage.c +++ b/src/char/int_storage.c @@ -23,8 +23,8 @@ char storage_txt[1024]="save/storage.txt"; char guild_storage_txt[1024]="save/g_storage.txt"; -static DBMap* storage_db; // int account_id -> struct storage_data* -static DBMap* guild_storage_db; // int guild_id -> struct guild_storage* +static DBMap* storage_db = NULL; // int account_id -> struct storage_data* +static DBMap* guild_storage_db = NULL; // int guild_id -> struct guild_storage* // 倉庫データを文字列に変換 bool storage_tostr(char* str, int account_id, struct storage_data* p) @@ -280,8 +280,14 @@ int inter_storage_init() } void inter_storage_final() { - storage_db->destroy(storage_db, NULL); - guild_storage_db->destroy(guild_storage_db, NULL); + if(storage_db) + { + storage_db->destroy(storage_db, NULL); + } + if(guild_storage_db) + { + guild_storage_db->destroy(guild_storage_db, NULL); + } return; } -- cgit v1.2.3-60-g2f50