Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
04557c3b
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
04557c3b
编写于
3月 09, 2015
作者:
P
Paul Harrington
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Made MetadataDecoder.GetSignatureCountsOrThrow static to reduce allocations in PEMethodSymbol.Arity
上级
59931e57
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
10 deletion
+14
-10
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs
...ers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs
+2
-2
src/Compilers/Core/Portable/MetadataReader/MetadataDecoder.cs
...Compilers/Core/Portable/MetadataReader/MetadataDecoder.cs
+10
-4
src/Compilers/VisualBasic/Portable/Symbols/Metadata/PE/PEMethodSymbol.vb
...isualBasic/Portable/Symbols/Metadata/PE/PEMethodSymbol.vb
+2
-4
未找到文件。
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs
浏览文件 @
04557c3b
...
...
@@ -437,7 +437,7 @@ public override int Arity
{
int
parameterCount
;
int
typeParameterCount
;
new
MetadataDecoder
(
_containingType
.
ContainingPEModule
,
this
).
GetSignatureCountsOrThrow
(
_handle
,
out
parameterCount
,
out
typeParameterCount
);
MetadataDecoder
.
GetSignatureCountsOrThrow
(
_containingType
.
ContainingPEModule
.
Module
,
_handle
,
out
parameterCount
,
out
typeParameterCount
);
return
typeParameterCount
;
}
catch
(
BadImageFormatException
)
...
...
@@ -600,7 +600,7 @@ internal override int ParameterCount
{
int
parameterCount
;
int
typeParameterCount
;
new
MetadataDecoder
(
_containingType
.
ContainingPEModule
,
this
).
GetSignatureCountsOrThrow
(
_handle
,
out
parameterCount
,
out
typeParameterCount
);
MetadataDecoder
.
GetSignatureCountsOrThrow
(
_containingType
.
ContainingPEModule
.
Module
,
_handle
,
out
parameterCount
,
out
typeParameterCount
);
return
parameterCount
;
}
catch
(
BadImageFormatException
)
...
...
src/Compilers/Core/Portable/MetadataReader/MetadataDecoder.cs
浏览文件 @
04557c3b
...
...
@@ -898,11 +898,11 @@ internal ParamInfo<TypeSymbol>[] GetSignatureForMethod(MethodDefinitionHandle me
}
/// <exception cref="BadImageFormatException">An exception from metadata reader.</exception>
internal
void
GetSignatureCountsOrThrow
(
MethodDefinitionHandle
methodDef
,
out
int
parameterCount
,
out
int
typeParameterCount
)
internal
static
void
GetSignatureCountsOrThrow
(
PEModule
module
,
MethodDefinitionHandle
methodDef
,
out
int
parameterCount
,
out
int
typeParameterCount
)
{
BlobHandle
signature
=
M
odule
.
GetMethodSignatureOrThrow
(
methodDef
);
BlobHandle
signature
=
m
odule
.
GetMethodSignatureOrThrow
(
methodDef
);
SignatureHeader
signatureHeader
;
BlobReader
signatureReader
=
DecodeSignatureHeaderOrThrow
(
signature
,
out
signatureHeader
);
BlobReader
signatureReader
=
DecodeSignatureHeaderOrThrow
(
module
,
signature
,
out
signatureHeader
);
GetSignatureCountsOrThrow
(
ref
signatureReader
,
signatureHeader
,
out
parameterCount
,
out
typeParameterCount
);
}
...
...
@@ -1497,7 +1497,13 @@ private TypeSymbol[] DecodeMethodSpecTypeArgumentsOrThrow(BlobHandle signature)
/// <exception cref="BadImageFormatException">An exception from metadata reader.</exception>
internal
BlobReader
DecodeSignatureHeaderOrThrow
(
BlobHandle
signature
,
out
SignatureHeader
signatureHeader
)
{
BlobReader
reader
=
Module
.
GetMemoryReaderOrThrow
(
signature
);
return
DecodeSignatureHeaderOrThrow
(
Module
,
signature
,
out
signatureHeader
);
}
/// <exception cref="BadImageFormatException">An exception from metadata reader.</exception>
internal
static
BlobReader
DecodeSignatureHeaderOrThrow
(
PEModule
module
,
BlobHandle
signature
,
out
SignatureHeader
signatureHeader
)
{
BlobReader
reader
=
module
.
GetMemoryReaderOrThrow
(
signature
);
signatureHeader
=
reader
.
ReadSignatureHeader
();
return
reader
;
}
...
...
src/Compilers/VisualBasic/Portable/Symbols/Metadata/PE/PEMethodSymbol.vb
浏览文件 @
04557c3b
...
...
@@ -550,8 +550,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE
Try
Dim
paramCount
As
Integer
=
0
Dim
typeParamCount
As
Integer
=
0
Dim
decoder
As
New
MetadataDecoder
(
Me
.
m_ContainingType
.
ContainingPEModule
,
Me
)
decoder
.
GetSignatureCountsOrThrow
(
Me
.
m_Handle
,
paramCount
,
typeParamCount
)
MetadataDecoder
.
GetSignatureCountsOrThrow
(
Me
.
m_ContainingType
.
ContainingPEModule
.
Module
,
Me
.
m_Handle
,
paramCount
,
typeParamCount
)
Return
typeParamCount
Catch
mrEx
As
BadImageFormatException
Return
TypeParameters
.
Length
...
...
@@ -673,8 +672,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE
Try
Dim
paramCount
As
Integer
=
0
Dim
typeParamCount
As
Integer
=
0
Dim
decoder
As
New
MetadataDecoder
(
Me
.
m_ContainingType
.
ContainingPEModule
,
Me
)
decoder
.
GetSignatureCountsOrThrow
(
Me
.
m_Handle
,
paramCount
,
typeParamCount
)
MetadataDecoder
.
GetSignatureCountsOrThrow
(
Me
.
m_ContainingType
.
ContainingPEModule
.
Module
,
Me
.
m_Handle
,
paramCount
,
typeParamCount
)
Return
paramCount
Catch
mrEx
As
BadImageFormatException
Return
Parameters
.
Length
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录