# Invalid conversion in ui\_theme\_manager.cpp

**URL:** <http://forum.squareline.io/t/invalid-conversion-in-ui-theme-manager-cpp/2620>\
**Category:** Bugs\
**Created:** [March 6, 2024, 6:59am UTC](http://forum.squareline.io/t/invalid-conversion-in-ui-theme-manager-cpp/2620 "2024-03-06T06:59:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Caipifrosch](http://forum.squareline.io/letter_avatar_proxy/v4/letter/c/f08c70/32.png) [@Caipifrosch](http://forum.squareline.io/u/Caipifrosch)\
**Post date:** [March 6, 2024, 6:59am UTC](http://forum.squareline.io/t/invalid-conversion-in-ui-theme-manager-cpp/2620/1 "2024-03-06T06:59:07Z")

</div>

### What do you want to achieve?

compile project after update to SLS 1.4.0 and adding theme.

getting two compile errors of similar type: some invalid conversion related to lv\_mem\_realloc()

Thanks a lot for your advice.

### compiler errors ui\_theme\_manager.cpp:98:38

src/src/Display/GUI/ui\_theme\_manager.cpp: In function ‘\_ui\_local\_style\_t\* \_ui\_local\_style\_create(const ui\_style\_variable\_t\*, bool)’:

src/src/Display/GUIui\_theme\_manager.cpp:98:38: error: invalid conversion from ‘void\*’ to ‘\_ui\_local\_style\_t\*’ [-fpermissive]

\_ui\_local\_styles = lv\_mem\_realloc( \_ui\_local\_styles, (\_ui\_local\_style\_count + 1) \* sizeof(\_ui\_local\_style\_t) );

### compiler errors ui\_theme\_manager.cpp:139:65:

src/src/Display/GUI/ui\_theme\_manager.cpp: In function ‘\_ui\_local\_style\_property\_setting\_t\* \_ui\_local\_style\_property\_setting\_create(\_ui\_local\_style\_t\*, lv\_obj\_t\*, lv\_style\_selector\_t, lv\_style\_prop\_t)’:

src/src/Display/GUI/ui\_theme\_manager.cpp:139:65: error: invalid conversion from ‘void\*’ to ‘\_ui\_local\_style\_property\_setting\_t\*’ [-fpermissive]  
local\_style\_p-\>style\_property\_settings = lv\_mem\_realloc (  
~~~~~~~~~~~~~~~ ^  
local\_style\_p-\>style\_property\_settings,  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
(local\_style\_p-\>style\_property\_setting\_count + 1) \* sizeof(\_ui\_local\_style\_property\_setting\_t)  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
);

### Others

- **SquareLine Studio version:**  
V1.4.0
- **Operating system:**  
Win11
- **Target hardware:**  
custom esp32-s3

---

<div class="post-metadata">

**Author:** ![Hermit](http://forum.squareline.io/user_avatar/forum.squareline.io/hermit/32/971_2.png) [@Hermit](http://forum.squareline.io/u/Hermit)\
**Post date:** [March 6, 2024, 9:31am UTC](http://forum.squareline.io/t/invalid-conversion-in-ui-theme-manager-cpp/2620/2 "2024-03-06T09:31:05Z")

</div>

The problem: C compiler likes to have the memory-allocations as void\*, but in your case the C++ compiler doesn’t only throw a warning, but stops with an error if there aren’t castings before memory allocations. We’ll take care of this for C++ exports, but for now you can find several easy solutions to circumvent this in this duplicate topic: [1.4: memory allocation bug with styles](https://forum.squareline.io/t/1-4-memory-allocation-bug-with-styles/2605)  
Probably the best option is to set ‘-fpermissive’ in your compiler options, so it will only give a warning and compile fine.
