Change storage type function
[platform/core/api/media-content.git] / src / media_tag.c
index 3a1dc94..de49579 100755 (executable)
@@ -91,8 +91,6 @@ static int __media_tag_get_tag_info_from_db(const char *name, media_tag_h tag)
        int ret = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
        char *select_query = NULL;
-       int id = 0;
-       char *tag_name = NULL;
        media_tag_s *_tag = (media_tag_s*)tag;
 
        media_content_retvm_if(_tag == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag");
@@ -103,16 +101,14 @@ static int __media_tag_get_tag_info_from_db(const char *name, media_tag_h tag)
        SQLITE3_SAFE_FREE(select_query);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
-       while (sqlite3_step(stmt) == SQLITE_ROW) {
-               SAFE_FREE(tag_name);
-
-               id = (int)sqlite3_column_int(stmt, 0);
-               tag_name = g_strdup((const char *)sqlite3_column_text(stmt, 1));
+       if (sqlite3_step(stmt) == SQLITE_ROW) {
+               _tag->tag_id = (int)sqlite3_column_int(stmt, 0);
+               _tag->name = g_strdup((const char *)sqlite3_column_text(stmt, 1));
+       } else {
+               media_content_error("Nonexistent tag name[%s]", name);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
-       _tag->tag_id = id;
-       _tag->name = tag_name;
-
        SQLITE3_FINALIZE(stmt);
 
        return ret;
@@ -321,10 +317,7 @@ int media_tag_get_tag_from_db(int tag_id, media_tag_h *tag)
 
        media_tag_s *_tag = NULL;
 
-       while (sqlite3_step(stmt) == SQLITE_ROW) {
-               if (_tag)
-                       media_tag_destroy((media_tag_h)_tag);
-
+       if (sqlite3_step(stmt) == SQLITE_ROW) {
                _tag = (media_tag_s*)calloc(1, sizeof(media_tag_s));
                if (_tag == NULL) {
                        SQLITE3_FINALIZE(stmt);
@@ -336,6 +329,9 @@ int media_tag_get_tag_from_db(int tag_id, media_tag_h *tag)
                _tag->name = g_strdup((const char *)sqlite3_column_text(stmt, 1));
 
                *tag = (media_tag_h)_tag;
+       } else {
+               media_content_error("Nonexistent tag id[%d]", tag_id);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
        SQLITE3_FINALIZE(stmt);
@@ -479,6 +475,9 @@ int media_tag_update_to_db(media_tag_h tag)
                        default:
                        break;
                        }
+
+                       if (ret != MEDIA_CONTENT_ERROR_NONE)
+                               media_content_error("Failed some operation[%d]", _tag_item->function);
                }
        }