Malloc alignment to 32bits for H7
This commit is contained in:
+3
-2
@@ -25,6 +25,7 @@
|
|||||||
#include "libopenui_types.h"
|
#include "libopenui_types.h"
|
||||||
#include "libopenui_defines.h"
|
#include "libopenui_defines.h"
|
||||||
#include "libopenui_depends.h"
|
#include "libopenui_depends.h"
|
||||||
|
#include "libopenui_helpers.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
constexpr uint8_t SOLID = 0xFF;
|
constexpr uint8_t SOLID = 0xFF;
|
||||||
@@ -188,7 +189,7 @@ class RLEBitmap:
|
|||||||
_width = *((uint16_t *)rle_data);
|
_width = *((uint16_t *)rle_data);
|
||||||
_height = *(((uint16_t *)rle_data)+1);
|
_height = *(((uint16_t *)rle_data)+1);
|
||||||
uint32_t pixels = _width * _height;
|
uint32_t pixels = _width * _height;
|
||||||
data = (uint16_t*)malloc(pixels * sizeof(uint16_t));
|
data = (uint16_t*)malloc(align32(pixels * sizeof(uint16_t)));
|
||||||
decode((uint8_t *)data, pixels * sizeof(uint16_t), rle_data+4);
|
decode((uint8_t *)data, pixels * sizeof(uint16_t), rle_data+4);
|
||||||
data_end = data + pixels;
|
data_end = data + pixels;
|
||||||
}
|
}
|
||||||
@@ -248,7 +249,7 @@ class BitmapBuffer: public BitmapBufferBase<pixel_t>
|
|||||||
, leakReported(false)
|
, leakReported(false)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
data = (uint16_t *)malloc(width * height * sizeof(uint16_t));
|
data = (uint16_t *)malloc(align32(width * height * sizeof(uint16_t)));
|
||||||
data_end = data + (width * height);
|
data_end = data + (width * height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,12 @@ inline int mod(int k, int n)
|
|||||||
return ((k %= n) < 0) ? k + n : k;
|
return ((k %= n) < 0) ? k + n : k;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline unsigned align32(unsigned n)
|
||||||
|
{
|
||||||
|
unsigned rest = (n & 3u);
|
||||||
|
return rest ? n + 4u - rest : n;
|
||||||
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
inline T sgn(T a)
|
inline T sgn(T a)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user