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 /src/util/media-thumb-db.c | |
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>
Diffstat (limited to 'src/util/media-thumb-db.c')
-rwxr-xr-x | src/util/media-thumb-db.c | 83 |
1 files changed, 22 insertions, 61 deletions
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; } |