Fix the bug of color value set in dlog 37/236437/7
authorYoungHun Kim <yh8004.kim@samsung.com>
Wed, 17 Jun 2020 06:12:09 +0000 (15:12 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Thu, 18 Jun 2020 06:01:23 +0000 (06:01 +0000)
 - Update dlog related with handle of mark_for_release

Change-Id: I9e670f0a4935779683941f78b335939ed5fcfd41

src/common/mm_resource_manager_utils.h
src/lib/mm_resource_manager_priv.c

index 0621f7b..bd52349 100644 (file)
@@ -48,7 +48,7 @@
 
 #define MM_RM_WARNING(fmt, arg...)                                  \
        do {                                                            \
-               LOGW(FONT_COLOR_YELLOW""fmt""FONT_COLOR_YELLOW, ##arg);     \
+               LOGW(FONT_COLOR_YELLOW""fmt""FONT_COLOR_RESET, ##arg);     \
        } while (0)
 
 #define MM_RM_ERROR(fmt, arg...)                                    \
index 12bd79a..f222741 100644 (file)
@@ -45,7 +45,7 @@ typedef struct {
 } mm_resource_manager_cb_s;
 
 typedef struct {
-       mm_resource_manager_id id;
+       mm_resource_manager_id handle_id;
        mm_resource_manager_res_type_e type;
        mm_resource_manager_res_volume volume;
        mm_resource_manager_res_state_e state;
@@ -318,7 +318,6 @@ int _mm_resource_manager_mark_for_release(mm_resource_manager_h rm, mm_resource_
        mm_resource_manager_s *handle;
        mm_resource_manager_res_p resource;
        mm_resource_manager_id handle_id;
-       mm_resource_manager_id resource_id;
        int idx = 0;
 
        __mm_resource_handles_lock();
@@ -329,25 +328,23 @@ int _mm_resource_manager_mark_for_release(mm_resource_manager_h rm, mm_resource_
        MM_RM_HASH64(handle_id);
 
        resource = (mm_resource_manager_res_p)resource_h;
-       resource_id = resource->id;
-       MM_RM_HASH64(resource_id);
-
-       MM_RM_RETVM_IF(handle_id != resource_id, MM_RESOURCE_MANAGER_ERROR_INVALID_PARAMETER,
-                       "handle RM #%"PRIu64" is not resource RM #%"PRIu64, handle_id, resource_id);
 
        MM_RM_INFO("[invoked : %d state : %s] Resource %p is marked for release in resource #%"PRIu64,
-               handle->release_cb.is_invoked, res_state_str[resource->state], resource_h, resource_id);
+               handle->release_cb.is_invoked, res_state_str[resource->state], resource_h, handle_id);
+
+       if (handle_id != _mm_rm_hash64(resource->handle_id))
+               MM_RM_WARNING("handle RM #%"PRIu64" is not resource RM #%"PRIu64, handle_id, _mm_rm_hash64(resource->handle_id));
 
        /* FIXME : We should consider resource lock's vulnerability because of using global variable of 'handles_lock' */
        if (handle->release_cb.is_invoked) {
                MM_RM_DEBUG("Skip resource %p (%s) of RM #%"PRIu64" because release cb will be executed soon",
-                       resource, _mm_resource_manager_get_res_str(resource->type), resource_id);
+                       resource, _mm_resource_manager_get_res_str(resource->type), handle_id);
                __mm_resource_handles_unlock();
                resource->state = MM_RESOURCE_MANAGER_RES_STATE_FOR_RELEASE;
                return MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION;
        }
 
-       MM_RM_INFO("(%s) is marked for release in RM #%"PRIu64, _mm_resource_manager_get_res_str(resource->type), resource_id);
+       MM_RM_INFO("(%s) is marked for release in RM #%"PRIu64, _mm_resource_manager_get_res_str(resource->type), handle_id);
 
        __mm_resources_lock(handle);
        __mm_resource_handles_unlock();
@@ -361,7 +358,7 @@ int _mm_resource_manager_mark_for_release(mm_resource_manager_h rm, mm_resource_
 
        __mm_resources_unlock(handle);
 
-       MM_RM_INFO("RM #%"PRIu64" is completed to mark", resource_id);
+       MM_RM_INFO("RM #%"PRIu64" is completed to mark", handle_id);
 
        return MM_RESOURCE_MANAGER_ERROR_NONE;
 }
@@ -617,12 +614,13 @@ static int __create_resource(mm_resource_manager_s *rm,
 
        MM_RM_RETVM_IF(handle == NULL, MM_RESOURCE_MANAGER_ERROR_INVALID_PARAMETER, "NULL handle pointer");
        MM_RM_RETVM_IF(res == NULL, MM_RESOURCE_MANAGER_ERROR_INVALID_PARAMETER, "NULL pointer");
+
        ret = __check_resource(rm, type, volume);
        if (ret != MM_RESOURCE_MANAGER_ERROR_NONE)
                return ret;
 
        *res = g_new0(mm_resource_manager_res_s, 1);
-       (*res)->id = handle->id;
+       (*res)->handle_id = handle->id;
        (*res)->type = type;
        if (handle->__max_resource_volumes[type] == MM_RESOURCE_MANAGER_RES_VOLUME_FULL &&
                volume != MM_RESOURCE_MANAGER_RES_VOLUME_FULL)