From 17221a12d28de70bf2d0071f2359a4b13668dfc5 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 18 Jun 2013 10:53:04 +0800 Subject: fixes berkeley db calls --- src/storage/ngram.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/storage/ngram.cpp') diff --git a/src/storage/ngram.cpp b/src/storage/ngram.cpp index 7509b17..3964388 100644 --- a/src/storage/ngram.cpp +++ b/src/storage/ngram.cpp @@ -287,6 +287,9 @@ bool Bigram::load_db(const char * dbfile){ ret = db_create(&tmp_db, NULL, 0); assert(ret == 0); + if (NULL == tmp_db) + return false; + ret = tmp_db->open(tmp_db, NULL, dbfile, NULL, DB_HASH, DB_RDONLY, 0600); if ( ret != 0 ) @@ -294,9 +297,13 @@ bool Bigram::load_db(const char * dbfile){ DBC * cursorp = NULL; DBT key, data; + /* Get a cursor */ tmp_db->cursor(tmp_db, NULL, &cursorp, 0); + if (NULL == cursorp) + return false; + /* Initialize our DBTs. */ memset(&key, 0, sizeof(DBT)); memset(&data, 0, sizeof(DBT)); @@ -328,6 +335,9 @@ bool Bigram::save_db(const char * dbfile){ ret = db_create(&tmp_db, NULL, 0); assert(ret == 0); + if (NULL == tmp_db) + return false; + ret = tmp_db->open(tmp_db, NULL, dbfile, NULL, DB_HASH, DB_CREATE, 0600); if ( ret != 0 ) @@ -338,6 +348,9 @@ bool Bigram::save_db(const char * dbfile){ /* Get a cursor */ m_db->cursor(m_db, NULL, &cursorp, 0); + if (NULL == cursorp) + return false; + /* Initialize our DBTs. */ memset(&key, 0, sizeof(DBT)); memset(&data, 0, sizeof(DBT)); @@ -444,7 +457,10 @@ bool Bigram::get_all_items(GArray * items){ DBT key, data; int ret; /* Get a cursor */ - m_db->cursor(m_db, NULL, &cursorp, 0); + m_db->cursor(m_db, NULL, &cursorp, 0); + + if (NULL == cursorp) + return false; /* Initialize our DBTs. */ memset(&key, 0, sizeof(DBT)); -- cgit