Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_34031325
engine
提交
5557e300
E
engine
项目概览
qq_34031325
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
5557e300
编写于
7月 17, 2018
作者:
J
Jonah Williams
提交者:
GitHub
7月 17, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix allocation of JNI byte buffer on API level 22 and below (#5788)
上级
c7da3aa7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
15 deletion
+24
-15
shell/platform/android/platform_view_android.cc
shell/platform/android/platform_view_android.cc
+24
-15
未找到文件。
shell/platform/android/platform_view_android.cc
浏览文件 @
5557e300
...
...
@@ -178,8 +178,9 @@ void PlatformViewAndroid::DispatchSemanticsAction(JNIEnv* env,
}
// |shell::PlatformView|
void
PlatformViewAndroid
::
UpdateSemantics
(
blink
::
SemanticsNodeUpdates
update
,
blink
::
CustomAccessibilityActionUpdates
actions
)
{
void
PlatformViewAndroid
::
UpdateSemantics
(
blink
::
SemanticsNodeUpdates
update
,
blink
::
CustomAccessibilityActionUpdates
actions
)
{
constexpr
size_t
kBytesPerNode
=
36
*
sizeof
(
int32_t
);
constexpr
size_t
kBytesPerChild
=
sizeof
(
int32_t
);
constexpr
size_t
kBytesPerAction
=
2
*
sizeof
(
int32_t
);
...
...
@@ -196,7 +197,8 @@ void PlatformViewAndroid::UpdateSemantics(blink::SemanticsNodeUpdates update,
num_bytes
+=
value
.
second
.
childrenInTraversalOrder
.
size
()
*
kBytesPerChild
;
num_bytes
+=
value
.
second
.
childrenInHitTestOrder
.
size
()
*
kBytesPerChild
;
num_bytes
+=
value
.
second
.
customAccessibilityActions
.
size
()
*
kBytesPerChild
;
num_bytes
+=
value
.
second
.
customAccessibilityActions
.
size
()
*
kBytesPerChild
;
}
std
::
vector
<
uint8_t
>
buffer
(
num_bytes
);
...
...
@@ -271,7 +273,8 @@ void PlatformViewAndroid::UpdateSemantics(blink::SemanticsNodeUpdates update,
// custom accessibility actions.
size_t
num_action_bytes
=
actions
.
size
()
*
kBytesPerAction
;
std
::
vector
<
uint8_t
>
actions_buffer
(
num_action_bytes
);
int32_t
*
actions_buffer_int32
=
reinterpret_cast
<
int32_t
*>
(
&
actions_buffer
[
0
]);
int32_t
*
actions_buffer_int32
=
reinterpret_cast
<
int32_t
*>
(
&
actions_buffer
[
0
]);
std
::
vector
<
std
::
string
>
action_strings
;
size_t
actions_position
=
0
;
...
...
@@ -289,18 +292,24 @@ void PlatformViewAndroid::UpdateSemantics(blink::SemanticsNodeUpdates update,
}
}
fml
::
jni
::
ScopedJavaLocalRef
<
jobject
>
direct_actions_buffer
(
env
,
env
->
NewDirectByteBuffer
(
actions_buffer
.
data
(),
actions_buffer
.
size
()));
fml
::
jni
::
ScopedJavaLocalRef
<
jobject
>
direct_buffer
(
env
,
env
->
NewDirectByteBuffer
(
buffer
.
data
(),
buffer
.
size
()));
// Calling NewDirectByteBuffer in API level 22 and below with a size of zero
// will cause a JNI crash.
if
(
actions_buffer
.
size
()
>
0
)
{
fml
::
jni
::
ScopedJavaLocalRef
<
jobject
>
direct_actions_buffer
(
env
,
env
->
NewDirectByteBuffer
(
actions_buffer
.
data
(),
actions_buffer
.
size
()));
FlutterViewUpdateCustomAccessibilityActions
(
env
,
view
.
obj
(),
direct_actions_buffer
.
obj
(),
fml
::
jni
::
VectorToStringArray
(
env
,
action_strings
).
obj
());
}
FlutterViewUpdateCustomAccessibilityActions
(
env
,
view
.
obj
(),
direct_actions_buffer
.
obj
(),
fml
::
jni
::
VectorToStringArray
(
env
,
action_strings
).
obj
());
FlutterViewUpdateSemantics
(
env
,
view
.
obj
(),
direct_buffer
.
obj
(),
fml
::
jni
::
VectorToStringArray
(
env
,
strings
).
obj
());
if
(
buffer
.
size
()
>
0
)
{
fml
::
jni
::
ScopedJavaLocalRef
<
jobject
>
direct_buffer
(
env
,
env
->
NewDirectByteBuffer
(
buffer
.
data
(),
buffer
.
size
()));
FlutterViewUpdateSemantics
(
env
,
view
.
obj
(),
direct_buffer
.
obj
(),
fml
::
jni
::
VectorToStringArray
(
env
,
strings
).
obj
());
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录