Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
85543b5b
F
fsharp
项目概览
dotNET Platform
/
fsharp
11 个月 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
85543b5b
编写于
12月 20, 2022
作者:
V
Vlad Zarytovskii
提交者:
GitHub
12月 20, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert "IL: optimize attribute cluster reading (#13821)" (#14497)
This reverts commit
179db4ed
.
上级
73714c94
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
38 deletion
+13
-38
src/Compiler/AbstractIL/ilread.fs
src/Compiler/AbstractIL/ilread.fs
+13
-38
未找到文件。
src/Compiler/AbstractIL/ilread.fs
浏览文件 @
85543b5b
...
...
@@ -1220,12 +1220,9 @@ type ISeekReadIndexedRowReader<'RowT, 'KeyT, 'T when 'RowT: struct> =
abstract
CompareKey
:
'
KeyT
->
int
abstract
ConvertRow
:
byref
<
'
RowT
>
->
'
T
let
seekReadIndexedRows
Rang
e
numRows
binaryChop
(
reader
:
ISeekReadIndexedRowReader
<
'
RowT
,
_,
_>)
=
let
seekReadIndexedRows
ByInterfac
e
numRows
binaryChop
(
reader
:
ISeekReadIndexedRowReader
<
'
RowT
,
_,
_>)
=
let
mutable
row
=
Unchecked
.
defaultof
<
'
RowT
>
let
mutable
startRid
=
-
1
let
mutable
endRid
=
-
1
if
binaryChop
then
let
mutable
low
=
0
let
mutable
high
=
numRows
+
1
...
...
@@ -1244,12 +1241,12 @@ let seekReadIndexedRowsRange numRows binaryChop (reader: ISeekReadIndexedRowRead
elif
c
<
0
then
high
<-
mid
else
fin
<-
true
let
res
=
ImmutableArray
.
CreateBuilder
()
if
high
-
low
>
1
then
// now read off rows, forward and backwards
let
mid
=
(
low
+
high
)
/
2
startRid
<-
mid
// read backwards
let
mutable
fin
=
false
let
mutable
curr
=
mid
-
1
...
...
@@ -1261,12 +1258,14 @@ let seekReadIndexedRowsRange numRows binaryChop (reader: ISeekReadIndexedRowRead
reader
.
GetRow
(
curr
,
&
row
)
if
reader
.
CompareKey
(
reader
.
GetKey
(&
row
))
=
0
then
startRid
<-
curr
res
.
Add
(
reader
.
ConvertRow
(&
row
))
else
fin
<-
true
curr
<-
curr
-
1
res
.
Reverse
()
// read forward
let
mutable
fin
=
false
let
mutable
curr
=
mid
...
...
@@ -1278,47 +1277,23 @@ let seekReadIndexedRowsRange numRows binaryChop (reader: ISeekReadIndexedRowRead
reader
.
GetRow
(
curr
,
&
row
)
if
reader
.
CompareKey
(
reader
.
GetKey
(&
row
))
=
0
then
endRid
<-
curr
res
.
Add
(
reader
.
ConvertRow
(&
row
))
else
fin
<-
true
curr
<-
curr
+
1
res
.
ToArray
()
else
let
mutable
rid
=
1
let
res
=
ImmutableArray
.
CreateBuilder
()
while
rid
<=
numRows
&&
startRid
=
-
1
do
reader
.
GetRow
(
rid
,
&
row
)
for
i
=
1
to
numRows
do
reader
.
GetRow
(
i
,
&
row
)
if
reader
.
CompareKey
(
reader
.
GetKey
(&
row
))
=
0
then
startRid
<-
rid
endRid
<-
rid
rid
<-
rid
+
1
let
mutable
fin
=
false
while
rid
<=
numRows
&&
not
fin
do
reader
.
GetRow
(
rid
,
&
row
)
if
reader
.
CompareKey
(
reader
.
GetKey
(&
row
))
=
0
then
endRid
<-
rid
else
fin
<-
true
startRid
,
endRid
let
seekReadIndexedRowsByInterface
numRows
binaryChop
(
reader
:
ISeekReadIndexedRowReader
<
'
RowT
,
_,
_>)
=
let
startRid
,
endRid
=
seekReadIndexedRowsRange
numRows
binaryChop
reader
if
startRid
<=
0
||
endRid
<
startRid
then
[||]
else
res
.
Add
(
reader
.
ConvertRow
(&
row
))
Array
.
init
(
endRid
-
startRid
+
1
)
(
fun
i
->
let
mutable
row
=
Unchecked
.
defaultof
<
'
RowT
>
reader
.
GetRow
(
startRid
+
i
,
&
row
)
reader
.
ConvertRow
(&
row
))
res
.
ToArray
()
[<
Struct
>]
type
CustomAttributeRow
=
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录