多个gif图片按幻灯片方式长时间播放引起手机死机

确认gdi_lfs会有leak file handle,Patch id: MAUI_03048124
可以按以下方法进行修改:
把函数
BOOL gdi_image_is_gif_file(U8 *file_name)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 f;
U8 buf[3];
kal_uint32 len;
kal_int32 result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
f = gdi_lfs_open(gdi_lfs_handle,(U16*) file_name, FS_READ_ONLY | FS_OPEN_NO_DIR | FS_OPEN_SHARED, 0);
if (f < 0)
{
return FALSE;
}
f = gdi_lfs_handle;

result = gdi_lfs_read(f, buf, 3, &len);
gdi_lfs_close(f);
if (result == FS_NO_ERROR)
if (len == 3)
if (buf[0] == 'G' && buf[1] == 'I' && buf[2] == 'F')
{
return TRUE;
}
return FALSE;
}
改为:
BOOL gdi_image_is_gif_file(U8 *file_name)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 f;
U8 buf[3];
kal_uint32 len;
kal_int32 result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
f = DRM_open_file(
(U16*) file_name,
FS_READ_ONLY | FS_OPEN_NO_DIR | FS_OPEN_SHARED,
DRM_PERMISSION_DISPLAY);
if (f < 0)
{
return FALSE;
}

result = DRM_read_file(f, buf, 3, &len);
DRM_close_file(f);
if (result == FS_NO_ERROR)
if (len == 3)
if (buf[0] == 'G' && buf[1] == 'I' && buf[2] == 'F')
{
return TRUE;
}
return FALSE;
}


把函数
BOOL gdi_image_is_png_file(U8 *file_name)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
int f;
U8 buf[8];
U32 len;
U32 result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
f = gdi_lfs_open(gdi_lfs_handle,(U16*) file_name, FS_READ_ONLY | FS_OPEN_NO_DIR | FS_OPEN_SHARED, 0);
if (f < 0) return FALSE;
f = gdi_lfs_handle;
result = gdi_lfs_read(f, buf, 8, &len);
gdi_lfs_close(f);
if (result == FS_NO_ERROR)
if (len == 8)
if (memcmp(buf, "\x89PNG\x0d\x0a\x1a\x0a", 8) == 0)
{
return TRUE;
}
return FALSE;
}
改为:
BOOL gdi_image_is_png_file(U8 *file_name)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
int f;
U8 buf[8];
U32 len;
U32 result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
f = DRM_open_file(
(U16*) file_name,
FS_READ_ONLY | FS_OPEN_NO_DIR | FS_OPEN_SHARED,
DRM_PERMISSION_DISPLAY);
if (f < 0)
{
return FALSE;
}
result = DRM_read_file(f, buf, 8, &len);
DRM_close_file(f);
if (result == FS_NO_ERROR)
if (len == 8)
if (memcmp(buf, "\x89PNG\x0d\x0a\x1a\x0a", 8) == 0)
{
return TRUE;
}
return FALSE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值