Ver Fonte

Enabled `DB_OPT_RELEASE_DATA` for atcommands `DBMap`s so they are able to free data automatically (as pointed out by Wildcard).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15642 54d463be-8e91-2dee-dedb-b68131a5f0ec
gepard1984 há 13 anos atrás
pai
commit
b4d04d7117
1 ficheiros alterados com 4 adições e 16 exclusões
  1. 4 16
      src/map/atcommand.c

+ 4 - 16
src/map/atcommand.c

@@ -8851,31 +8851,19 @@ static void atcommand_config_read(const char* config_filename)
 	return;
 }
 
-static int atcommand_db_free(DBKey key, void *data, va_list va)
-{
-	aFree((AtCommandInfo*)data);
-	return 1;
-}
-
-static int atcommand_alias_db_free(DBKey key, void *data, va_list va)
-{
-	aFree((AliasInfo*)data);
-	return 1;
-}
-
 void atcommand_db_clear(void)
 {
 	if (atcommand_db != NULL)
-		atcommand_db->destroy(atcommand_db, atcommand_db_free);
+		db_destroy(atcommand_db);
 	if (atcommand_alias_db != NULL)
-		atcommand_alias_db->destroy(atcommand_alias_db, atcommand_alias_db_free);
+		db_destroy(atcommand_alias_db);
 }
 
 void atcommand_doload(void)
 {
 	atcommand_db_clear();
-	atcommand_db = stridb_alloc(DB_OPT_DUP_KEY, ATCOMMAND_LENGTH);
-	atcommand_alias_db = stridb_alloc(DB_OPT_DUP_KEY, ATCOMMAND_LENGTH);
+	atcommand_db = stridb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, ATCOMMAND_LENGTH);
+	atcommand_alias_db = stridb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, ATCOMMAND_LENGTH);
 	atcommand_basecommands(); //fills initial atcommand_db with known commands
 	atcommand_config_read(ATCOMMAND_CONF_FILENAME);
 }