diff options
author | FlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-11-08 14:08:32 +0000 |
---|---|---|
committer | FlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-11-08 14:08:32 +0000 |
commit | b5be01c5baca2d51da4ec9a138e3bb57eea7cbb4 (patch) | |
tree | b7f079f5317d736e49fdf8b12f6d3f18b2a98daf /src/txt-converter/login-converter.c | |
parent | ad2a3a12e2d603e8ef2011d1121271b7ed2f05eb (diff) | |
download | hercules-b5be01c5baca2d51da4ec9a138e3bb57eea7cbb4.tar.gz hercules-b5be01c5baca2d51da4ec9a138e3bb57eea7cbb4.tar.bz2 hercules-b5be01c5baca2d51da4ec9a138e3bb57eea7cbb4.tar.xz hercules-b5be01c5baca2d51da4ec9a138e3bb57eea7cbb4.zip |
* Changed EXIT_SUCCESS back to 0 in console.c to avoid an unnecessary include.
* Fixed gm_account_db not being deallocated in login-converter.c.
* Refactoring names and documentation in db.h/db.c:
- changed 'struct dbt' to 'struct DBMap' and 'DB' to 'DBMap*'
- changed 'struct db' to 'struct DBMap_impl' and 'DB_impl' to 'DBMap_impl*'
- changed COUNT to DB_COUNTSTAT and made it's existence not depend on DB_ENABLE_STATS
- removed some @see links and corrected small typos in the documentation
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11698 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/txt-converter/login-converter.c')
-rw-r--r-- | src/txt-converter/login-converter.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/txt-converter/login-converter.c b/src/txt-converter/login-converter.c index 4a9b442f9..1e5aba76a 100644 --- a/src/txt-converter/login-converter.c +++ b/src/txt-converter/login-converter.c @@ -7,6 +7,7 @@ #include "../common/db.h" #include "../common/showmsg.h" #include "../common/sql.h" +#include "../common/malloc.h" #include <stdio.h> #include <stdlib.h> @@ -18,7 +19,7 @@ char login_user_pass[256]="user_pass"; char login_db[256]="login"; char globalreg_db[256]="global_reg_value"; -static struct dbt *gm_account_db; +static DBMap* gm_account_db=NULL; // int account_id -> struct gm_account* int db_server_port = 3306; char db_server_ip[32] = "127.0.0.1"; @@ -52,7 +53,7 @@ int read_gm_account() if( (fp = fopen(GM_ACCOUNT_NAME,"r")) == NULL ) return 1; - gm_account_db = db_alloc(__FILE__,__LINE__,DB_INT,DB_OPT_BASE,sizeof(int)); //FIXME: never deallocated + gm_account_db = idb_alloc(DB_OPT_RELEASE_DATA); while(fgets(line,sizeof(line),fp)) { @@ -60,7 +61,7 @@ int read_gm_account() if ((line[0] == '/' && line[1] == '/') || line[0] == '\0' || line[0] == '\n' || line[0] == '\r') continue; - p = (struct gm_account*)malloc(sizeof(struct gm_account)); + p = (struct gm_account*)aMalloc(sizeof(struct gm_account)); if(p==NULL){ ShowFatalError("gm_account: out of memory!\n"); exit(EXIT_FAILURE); @@ -73,7 +74,9 @@ int read_gm_account() else { if(p->level > 99) p->level = 99; - idb_put(gm_account_db,p->account_id,p); + p = idb_put(gm_account_db,p->account_id,p); + if( p ) + aFree(p);// old entry replaced gm_counter++; ShowInfo("GM ID: %d Level: %d\n",p->account_id,p->level); } @@ -227,4 +230,11 @@ int do_init(int argc, char** argv) void do_abort(void) {} -void do_final(void) {} +void do_final(void) +{ + if( gm_account_db ) + { + db_destroy(gm_account_db); + gm_account_db = NULL; + } +} |