diff options
author | Minje Ahn <minje.ahn@samsung.com> | 2017-07-10 11:13:24 +0900 |
---|---|---|
committer | Minje Ahn <minje.ahn@samsung.com> | 2017-07-10 11:18:21 +0900 |
commit | 37e9042aa25253fe91f67d0ed2e7cb7cfda25b88 (patch) | |
tree | 8620745e63c873532fd421f9125ceb55e82befd1 | |
parent | 19fcd8fbf7baff560bc70737d42a5c3ea26887bb (diff) | |
download | libmedia-thumbnail-37e9042aa25253fe91f67d0ed2e7cb7cfda25b88.tar.gz libmedia-thumbnail-37e9042aa25253fe91f67d0ed2e7cb7cfda25b88.tar.bz2 libmedia-thumbnail-37e9042aa25253fe91f67d0ed2e7cb7cfda25b88.zip |
Reduce error checker
1. Reinforce query
2. Merge function
Change-Id: Ia6c560056f7c4daeaf2dd9107308b91876e19a93
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
-rwxr-xr-x | src/include/util/media-thumb-db.h | 2 | ||||
-rwxr-xr-x | src/util/media-thumb-db.c | 83 |
2 files changed, 23 insertions, 62 deletions
diff --git a/src/include/util/media-thumb-db.h b/src/include/util/media-thumb-db.h index a4cfc52..a6eedf9 100755 --- a/src/include/util/media-thumb-db.h +++ b/src/include/util/media-thumb-db.h @@ -29,7 +29,7 @@ #define SQLITE3_FINALIZE(x) {if (x != NULL) sqlite3_finalize(x); } #define SQLITE3_SAFE_FREE(x) {if (x != NULL) {sqlite3_free(x); x = NULL; } } -#define SELECT_THUMB_BY_PATH "SELECT thumbnail_path, width, height FROM media WHERE path='%q';" +#define SELECT_THUMB_BY_PATH "SELECT thumbnail_path, width, height FROM media WHERE path='%q' AND thumbnail_path IS NOT NULL;" #define UPDATE_THUMB_BY_PATH "UPDATE media SET thumbnail_path = '%q' WHERE path='%q';" #define UPDATE_THUMB_WH_BY_PATH "UPDATE media SET thumbnail_path = '%q', width=%d,height=%d WHERE path='%q';" diff --git a/src/util/media-thumb-db.c b/src/util/media-thumb-db.c index 6f20e12..eab4ef1 100755 --- a/src/util/media-thumb-db.c +++ b/src/util/media-thumb-db.c @@ -34,55 +34,6 @@ sqlite3 *_media_thumb_db_get_handle() return db_handle; } -int _media_thumb_get_thumb_path_wh_from_db(sqlite3 *handle, - const char *origin_path, - char *thumb_path, - int max_length, - int *width, - int *height) -{ - - int err = MS_MEDIA_ERR_NONE; - char *query_string = NULL; - sqlite3_stmt *stmt = NULL; - - thumb_retvm_if(handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL"); - thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path"); - - query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path); - thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed"); - - thumb_dbg_slog("Query: %s", query_string); - - err = sqlite3_prepare_v2(handle, query_string, strlen(query_string), &stmt, NULL); - SQLITE3_SAFE_FREE(query_string); - if (SQLITE_OK != err) { - thumb_err("prepare error [%s]", sqlite3_errmsg(handle)); - return MS_MEDIA_ERR_DB_INTERNAL; - } - - err = sqlite3_step(stmt); - if (err != SQLITE_ROW) { - thumb_err("end of row [%s]", sqlite3_errmsg(handle)); - SQLITE3_FINALIZE(stmt); - return MS_MEDIA_ERR_DB_INTERNAL; - } - - if (sqlite3_column_text(stmt, 0)) { - strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length); - *width = sqlite3_column_int(stmt, 1); - *height = sqlite3_column_int(stmt, 2); - } else { - thumb_path[0] = '\0'; - *width = 0; - *height = 0; - } - - SQLITE3_FINALIZE(stmt); - - return MS_MEDIA_ERR_NONE; -} - int _media_thumb_db_connect(uid_t uid) { int err = MS_MEDIA_ERR_NONE; @@ -113,24 +64,34 @@ int _media_thumb_db_disconnect() int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height) { int err = MS_MEDIA_ERR_NONE; - int orig_w = 0; - int orig_h = 0; + char *query_string = NULL; + sqlite3_stmt *stmt = NULL; + + thumb_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL"); + thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path"); - err = _media_thumb_get_thumb_path_wh_from_db(db_handle, origin_path, thumb_path, max_length, &orig_w, &orig_h); - thumb_retvm_if(err != MS_MEDIA_ERR_NONE, err, "Original path doesn't exist in DB"); - thumb_retvm_if(!STRING_VALID(thumb_path), MS_MEDIA_ERR_INTERNAL, "[No-error] thumb path doesn't exist in DB"); + query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path); + thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed"); + thumb_dbg_slog("Query: %s", query_string); - thumb_dbg_slog("Thumb path in DB is %s", thumb_path); + err = sqlite3_prepare_v2(db_handle, query_string, strlen(query_string), &stmt, NULL); + SQLITE3_SAFE_FREE(query_string); + thumb_retvm_if(SQLITE_OK != err, MS_MEDIA_ERR_DB_INTERNAL, "prepare error [%s]", sqlite3_errmsg(db_handle)); - if (!g_file_test(thumb_path, G_FILE_TEST_EXISTS)) { - thumb_warn("thumb path doesn't exist in file system"); - return MS_MEDIA_ERR_INTERNAL; + if (sqlite3_step(stmt) == SQLITE_ROW) { + strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length); + *width = sqlite3_column_int(stmt, 1); + *height = sqlite3_column_int(stmt, 2); } else { - thumb_dbg("This thumb path already exist"); - *width = orig_w; - *height = orig_h; + thumb_err("end of row [%s]", sqlite3_errmsg(db_handle)); + SQLITE3_FINALIZE(stmt); + return MS_MEDIA_ERR_DB_INTERNAL; } + SQLITE3_FINALIZE(stmt); + + thumb_retvm_if(!g_file_test(thumb_path, G_FILE_TEST_EXISTS), MS_MEDIA_ERR_INTERNAL, "thumb path doesn't exist in file system"); + return MS_MEDIA_ERR_NONE; } |