From 991f892a98caae5c8fd5e4c671eda4b5f9ea3d12 Mon Sep 17 00:00:00 2001 From: canardos Date: Sun, 14 Apr 2019 13:24:12 +0800 Subject: [PATCH 1/2] add lv_obj_set_user_data function --- src/lv_core/lv_obj.c | 10 ++++++++++ src/lv_core/lv_obj.h | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/src/lv_core/lv_obj.c b/src/lv_core/lv_obj.c index 09ddb1ce5..3d7526923 100644 --- a/src/lv_core/lv_obj.c +++ b/src/lv_core/lv_obj.c @@ -1875,6 +1875,16 @@ lv_obj_user_data_t * lv_obj_get_user_data(lv_obj_t * obj) { return &obj->user_data; } + +/** + * Set the objet's user data + * @param obj pointer to an object + * @param data user data + */ +void lv_obj_set_user_data(lv_obj_t * obj, lv_obj_user_data_t data) +{ + obj->user_data = data; +} #endif #if LV_USE_GROUP diff --git a/src/lv_core/lv_obj.h b/src/lv_core/lv_obj.h index 1fa0bf1df..73fd2332d 100644 --- a/src/lv_core/lv_obj.h +++ b/src/lv_core/lv_obj.h @@ -857,6 +857,14 @@ void lv_obj_get_type(lv_obj_t * obj, lv_obj_type_t * buf); * @return pointer to the user data */ lv_obj_user_data_t * lv_obj_get_user_data(lv_obj_t * obj); + +/** + * Set the objet's user data + * @param obj pointer to an object + * @param data user data + */ +void lv_obj_set_user_data(lv_obj_t * obj, lv_obj_user_data_t data); + #endif #if LV_USE_GROUP From 5a88709a5c5c7c7c1fa9cc49738dc472740bed01 Mon Sep 17 00:00:00 2001 From: canardos Date: Thu, 18 Apr 2019 14:12:30 +0800 Subject: [PATCH 2/2] Change assignment to memcpy --- src/lv_core/lv_obj.c | 4 ++-- src/lv_core/lv_obj.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lv_core/lv_obj.c b/src/lv_core/lv_obj.c index 3d7526923..3e7790b4f 100644 --- a/src/lv_core/lv_obj.c +++ b/src/lv_core/lv_obj.c @@ -1877,13 +1877,13 @@ lv_obj_user_data_t * lv_obj_get_user_data(lv_obj_t * obj) } /** - * Set the objet's user data + * Set the object's user data. The data will be copied. * @param obj pointer to an object * @param data user data */ void lv_obj_set_user_data(lv_obj_t * obj, lv_obj_user_data_t data) { - obj->user_data = data; + memcpy(&obj->user_data, &data, sizeof(lv_obj_user_data_t)); } #endif diff --git a/src/lv_core/lv_obj.h b/src/lv_core/lv_obj.h index 73fd2332d..226ed4a4b 100644 --- a/src/lv_core/lv_obj.h +++ b/src/lv_core/lv_obj.h @@ -859,7 +859,7 @@ void lv_obj_get_type(lv_obj_t * obj, lv_obj_type_t * buf); lv_obj_user_data_t * lv_obj_get_user_data(lv_obj_t * obj); /** - * Set the objet's user data + * Set the object's user data. The data will be copied. * @param obj pointer to an object * @param data user data */