Officially supported architectures:
-| debian-amd64 | debian-i386 | debian-armel | debian-armhf | windows-amd64 |
-|-------------------------|------------------------|-------------------------|-------------------------|---------------------------|
-| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-armel][5]][6] | [![debian-armhf][7]][8] | [![windows-amd64][9]][10] |
+| ubuntu-1404-amd64 | ubuntu-1404-i386 | debian-8-armel | debian-8-armhf | debian-8-arm64 | windows-amd64 |
+|------------------------------|-----------------------------|---------------------------|---------------------------|-----------------------------|----------------------------|
+| [![ubuntu-1404-amd64][1]][2] | [![ubuntu-1404-i386][3]][4] | [![debian-8-armel][5]][6] | [![debian-8-armhf][7]][8] | [![debian-8-arm64][9]][10] | [![windows-amd64][11]][12] |
Community supported architectures:
| centos-s390x |
|---------------------------|
-| [![centos-s390x][11]][12] |
-
-[1]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/badge/icon
-[2]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/
-[3]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/badge/icon
-[4]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/
-[5]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/badge/icon
-[6]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/
-[7]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/badge/icon
-[8]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/
-[9]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
-[10]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
-[11]: https://jenkins.mono-project.com/job/z/label=centos-s390x/badge/icon
-[12]: https://jenkins.mono-project.com/job/z/label=centos-s390x
+| [![centos-s390x][13]][14] |
+
+[1]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-amd64/badge/icon
+[2]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-amd64
+[3]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-i386/badge/icon
+[4]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-i386/
+[5]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armel/badge/icon
+[6]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armel/
+[7]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armhf/badge/icon
+[8]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armhf/
+[9]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/badge/icon
+[10]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/
+[11]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
+[12]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
+[13]: https://jenkins.mono-project.com/job/z/label=centos-s390x/badge/icon
+[14]: https://jenkins.mono-project.com/job/z/label=centos-s390x
Compilation and Installation
============================
#!/bin/sh
(cd mcs/jay; make)
+(cd msvc/scripts/; make prepare.exe; mono prepare.exe `pwd`/mcs core)
msbuild net_4_x.sln
# Process this file with autoconf to produce a configure script.
#AC_PREREQ([2.62])
-AC_INIT(mono, [4.5.1],
+# when bumping version number below, keep it in sync with man/mono.1 too
+AC_INIT(mono, [4.5.2],
[http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README.md])
#ifdef __GNUC__
__inline__
#endif
-LONG GC_get_max_thread_index()
+static LONG GC_get_max_thread_index()
{
LONG my_max = GC_max_thread_index;
.\" Author:
.\" Miguel de Icaza (miguel@gnu.org)
.\"
-.TH Mono "Mono 3.0"
+.TH Mono "Mono 4.5.2"
.SH NAME
mono \- Mono's ECMA-CLI native code generator (Just-in-Time and Ahead-of-Time)
.SH SYNOPSIS
endif
test_lib = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_test.dll)
-test_sourcefile_excludes = $(test_lib).excludes
+test_sourcefile_excludes = $(test_lib).exclude.sources
test_pdb = $(test_lib:.dll=.pdb)
test_response = $(depsdir)/$(test_lib).response
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
$(ProjectDir)\..\..\jay\jay.exe -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
TypeMirror t = o.Type;
- Assert.AreEqual ("MonoType", t.GetTypeObject ().Type.Name);
+ Assert.AreEqual ("RuntimeType", t.GetTypeObject ().Type.Name);
}
[Test]
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
m_primitiveTypeFlagMap[amqpType] = isReference;
}
- public void HandleOption(string opt) {
+ public bool HandleOption(string opt) {
if (opt.StartsWith("/n:")) {
m_framingSubnamespace = opt.Substring(3);
} else if (opt.StartsWith("/apiName:")) {
} else if (opt == "/c") {
m_emitComments = true;
} else {
- Console.Error.WriteLine("Unsupported command-line option: " + opt);
- Usage();
+ return false;
}
+ return true;
}
public void Usage() {
public Apigen(ArrayList args) {
while (args.Count > 0 && ((string) args[0]).StartsWith("/")) {
- HandleOption((string) args[0]);
+ if (!HandleOption((string) args[0]))
+ break;
args.RemoveAt(0);
}
if ((args.Count < 2)
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+mono RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+
+
+
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+ RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+ RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+ RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+
+
+
\r
</PostBuildEvent>\r
</PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
--- /dev/null
+System.IO.Pipes/PipeSecurityTest.cs
+++ /dev/null
-System.IO.Pipes/PipeSecurityTest.cs
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
--- /dev/null
+System.Data.Odbc/OdbcCommandBuilderTest.cs
+System.Data.Odbc/OdbcCommandTest.cs
+System.Data.Odbc/OdbcConnectionStringBuilderTest.cs
+System.Data.Odbc/OdbcConnectionTest.cs
+System.Data.Odbc/OdbcDataAdapterTest.cs
+System.Data.Odbc/OdbcDataReaderTest.cs
+System.Data.Odbc/OdbcMetaDataCollectionNamesTest.cs
+System.Data.Odbc/OdbcParameterCollectionTest.cs
+System.Data.Odbc/OdbcParameterTest.cs
+System.Data.Odbc/OdbcPermissionAttributeTest.cs
+System.Data.Odbc/OdbcPermissionTest.cs
+System.Data.OleDb/OleDbCommandTest.cs
+System.Data.OleDb/OleDbConnectionTest.cs
+System.Data.OleDb/OleDbDataAdapterTest.cs
+System.Data.OleDb/OleDbMetaDataCollectionNamesTest.cs
+System.Data.OleDb/OleDbParameterCollectionTest.cs
+System.Data.OleDb/OleDbPermissionAttributeTest.cs
+System.Data.OleDb/OleDbPermissionTest.cs
+++ /dev/null
-System.Data.Odbc/OdbcCommandBuilderTest.cs
-System.Data.Odbc/OdbcCommandTest.cs
-System.Data.Odbc/OdbcConnectionStringBuilderTest.cs
-System.Data.Odbc/OdbcConnectionTest.cs
-System.Data.Odbc/OdbcDataAdapterTest.cs
-System.Data.Odbc/OdbcDataReaderTest.cs
-System.Data.Odbc/OdbcMetaDataCollectionNamesTest.cs
-System.Data.Odbc/OdbcParameterCollectionTest.cs
-System.Data.Odbc/OdbcParameterTest.cs
-System.Data.Odbc/OdbcPermissionAttributeTest.cs
-System.Data.Odbc/OdbcPermissionTest.cs
-System.Data.OleDb/OleDbCommandTest.cs
-System.Data.OleDb/OleDbConnectionTest.cs
-System.Data.OleDb/OleDbDataAdapterTest.cs
-System.Data.OleDb/OleDbMetaDataCollectionNamesTest.cs
-System.Data.OleDb/OleDbParameterCollectionTest.cs
-System.Data.OleDb/OleDbPermissionAttributeTest.cs
-System.Data.OleDb/OleDbPermissionTest.cs
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
Directory.Delete ("extract", true);
}
+
+ [Test]
+ public void ZipCreateFromEntryChangeTimestamp()
+ {
+ if (File.Exists ("foo.zip"))
+ File.Delete ("foo.zip");
+
+ var file = "foo/foo.txt";
+ using (var archive = new ZipArchive(File.Open("foo.zip", FileMode.Create),
+ ZipArchiveMode.Update))
+ {
+ archive.CreateEntryFromFile(file, file);
+ }
+
+ var date = File.GetLastWriteTimeUtc(file);
+
+ using (var archive = new ZipArchive (File.Open ("foo.zip", FileMode.Open),
+ ZipArchiveMode.Read))
+ {
+ var entry = archive.GetEntry (file);
+ Assert.IsNotNull (entry);
+ Assert.AreEqual(entry.LastWriteTime.Year, date.Year);
+ Assert.AreEqual(entry.LastWriteTime.Month, date.Month);
+ Assert.AreEqual(entry.LastWriteTime.Day, date.Day);
+ }
+ }
}
}
FileAccess.Read, FileShare.Read))
{
var zipArchiveEntry = destination.CreateEntry (entryName, compressionLevel);
+ zipArchiveEntry.LastWriteTime = File.GetLastWriteTimeUtc(sourceFileName);
using (Stream entryStream = zipArchiveEntry.Open ())
stream.CopyTo (entryStream);
{
private readonly string path;
private readonly long size;
- private readonly DateTime? lastModified;
private readonly bool closeStream;
private readonly Stream stream;
private bool isDisposed;
this.stream = stream;
this.path = path;
this.size = size;
- this.lastModified = lastModified;
+ this.LastModifiedTime = lastModified;
this.closeStream = closeStream;
}
get { return size; }
}
- public override DateTime? LastModifiedTime
- {
- get { return lastModified; }
- }
-
public override DateTime? CreatedTime
{
get { return null; }
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
File.Delete ("create.zip");
}
+ [Test]
+ public void ZipEnumerateEntriesModifiedTime()
+ {
+ File.Copy("archive.zip", "test.zip", overwrite: true);
+ var date = DateTimeOffset.Now;
+ using (var archive = new ZipArchive(File.Open("test.zip", FileMode.Open),
+ ZipArchiveMode.Update))
+ {
+ var entry = archive.GetEntry("foo.txt");
+ entry.LastWriteTime = date;
+ }
+
+ using (var archive = new ZipArchive(File.Open("test.zip", FileMode.Open),
+ ZipArchiveMode.Read))
+ {
+ var entry = archive.GetEntry("foo.txt");
+ Assert.AreEqual(entry.LastWriteTime.Year, date.Year);
+ Assert.AreEqual(entry.LastWriteTime.Month, date.Month);
+ Assert.AreEqual(entry.LastWriteTime.Day, date.Day);
+
+ }
+
+ File.Delete ("test.zip");
+ }
+
[Test]
public void ZipEnumerateEntriesReadMode()
{
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<Compile Include="System.Transactions\TransactionOptions.cs" />\r
<Compile Include="System.Transactions\TransactionPromotionException.cs" />\r
<Compile Include="System.Transactions\TransactionScope.cs" />\r
+ <Compile Include="System.Transactions\TransactionScopeAsyncFlowOption.cs" />\r
<Compile Include="System.Transactions\TransactionScopeOption.cs" />\r
<Compile Include="System.Transactions\TransactionStatus.cs" />\r </ItemGroup>\r
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
System.Transactions/TransactionOptions.cs
System.Transactions/TransactionPromotionException.cs
System.Transactions/TransactionScope.cs
+System.Transactions/TransactionScopeAsyncFlowOption.cs
System.Transactions/TransactionScopeOption.cs
System.Transactions/TransactionStatus.cs
System.Transactions/Configuration/DefaultSettingsSection.cs
bool completed;
bool isRoot;
+ bool asyncFlowEnabled;
+
public TransactionScope ()
: this (TransactionScopeOption.Required,
TransactionManager.DefaultTimeout)
{
}
+ public TransactionScope(TransactionScopeAsyncFlowOption asyncFlow)
+ : this(TransactionScopeOption.Required,
+ TransactionManager.DefaultTimeout, asyncFlow)
+ {
+ }
+
public TransactionScope (Transaction transaction)
: this (transaction, TransactionManager.DefaultTimeout)
{
TimeSpan timeout, DTCOption opt)
{
Initialize (TransactionScopeOption.Required,
- transaction, defaultOptions, opt, timeout);
+ transaction, defaultOptions, opt, timeout, TransactionScopeAsyncFlowOption.Suppress);
}
public TransactionScope (TransactionScopeOption option)
}
public TransactionScope (TransactionScopeOption option,
- TimeSpan timeout)
+ TimeSpan timeout)
+ : this (option, timeout, TransactionScopeAsyncFlowOption.Suppress)
+ {
+ }
+
+ public TransactionScope(TransactionScopeOption option, TransactionScopeAsyncFlowOption asyncFlow)
+ : this(option, TransactionManager.DefaultTimeout, asyncFlow)
+ {
+ }
+
+ public TransactionScope (TransactionScopeOption option,
+ TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow)
{
Initialize (option, null, defaultOptions,
- DTCOption.None, timeout);
+ DTCOption.None, timeout, asyncFlow);
}
public TransactionScope (TransactionScopeOption scopeOption,
DTCOption opt)
{
Initialize (scopeOption, null, options, opt,
- TransactionManager.DefaultTimeout);
+ TransactionManager.DefaultTimeout, TransactionScopeAsyncFlowOption.Suppress);
}
void Initialize (TransactionScopeOption scopeOption,
Transaction tx, TransactionOptions options,
- DTCOption interop, TimeSpan timeout)
+ DTCOption interop, TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow)
{
completed = false;
isRoot = false;
nested = 0;
+ asyncFlowEnabled = asyncFlow == TransactionScopeAsyncFlowOption.Enabled;
if (timeout < TimeSpan.Zero)
throw new ArgumentOutOfRangeException ("timeout");
throw new InvalidOperationException ("TransactionScope nested incorrectly");
}
- if (Transaction.CurrentInternal != transaction) {
+ if (Transaction.CurrentInternal != transaction && !asyncFlowEnabled) {
if (transaction != null)
transaction.Rollback ();
if (Transaction.CurrentInternal != null)
Transaction.CurrentInternal.Rollback ();
throw new InvalidOperationException ("Transaction.Current has changed inside of the TransactionScope");
- }
+ }
- if (Transaction.CurrentInternal == oldTransaction && oldTransaction != null)
- oldTransaction.Scope = parentScope;
+ if (asyncFlowEnabled) {
+ if (oldTransaction != null)
+ oldTransaction.Scope = parentScope;
- Transaction.CurrentInternal = oldTransaction;
+ var variedTransaction = Transaction.CurrentInternal;
- if (transaction == null)
- /* scope was not in a transaction, (Suppress) */
- return;
+ if (transaction == null && variedTransaction == null)
+ /* scope was not in a transaction, (Suppress) */
+ return;
- transaction.Scope = null;
+ variedTransaction.Scope = parentScope;
+ Transaction.CurrentInternal = oldTransaction;
- if (!IsComplete) {
- transaction.Rollback ();
- return;
- }
+ transaction.Scope = null;
- if (!isRoot)
- /* Non-root scope has completed+ended */
- return;
+ if (!IsComplete) {
+ transaction.Rollback ();
+ variedTransaction.Rollback();
+ return;
+ }
+
+ if (!isRoot)
+ /* Non-root scope has completed+ended */
+ return;
+
+ variedTransaction.CommitInternal();
+ transaction.CommitInternal();
+ } else {
+ if (Transaction.CurrentInternal == oldTransaction && oldTransaction != null)
+ oldTransaction.Scope = parentScope;
+
+ Transaction.CurrentInternal = oldTransaction;
- transaction.CommitInternal ();
+ if (transaction == null)
+ /* scope was not in a transaction, (Suppress) */
+ return;
+
+ transaction.Scope = null;
+
+ if (!IsComplete)
+ {
+ transaction.Rollback();
+ return;
+ }
+
+ if (!isRoot)
+ /* Non-root scope has completed+ended */
+ return;
+
+ transaction.CommitInternal();
+
+ }
}
--- /dev/null
+
+namespace System.Transactions
+{
+ public enum TransactionScopeAsyncFlowOption
+ {
+ Suppress,
+ Enabled
+ }
+}
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
--- /dev/null
+System.Web.Services/Test/System.Web.Services.Configuration/DiagnosticsElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/ProtocolElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/SoapEnvelopeProcessingElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/SoapExtensionTypeElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/TypeElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/WsdlHelpGeneratorElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/WsiProfilesElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs
+++ /dev/null
-System.Web.Services/Test/System.Web.Services.Configuration/DiagnosticsElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/ProtocolElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/SoapEnvelopeProcessingElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/SoapExtensionTypeElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/TypeElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/WsdlHelpGeneratorElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/WsiProfilesElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
TEST_MCS_FLAGS += -d:MONO_FEATURE_THREAD_SUSPEND_RESUME
endif
+ifndef NO_MULTIPLE_APPDOMAINS
+REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_MULTIPLE_APPDOMAINS
+TEST_MCS_FLAGS += -d:MONO_FEATURE_MULTIPLE_APPDOMAINS
+endif
+
TXT_RESOURCE_STRINGS = ../referencesource/System/System.txt
#
--- /dev/null
+using System.Collections;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using Mono.Net;
+
+namespace System.Net
+{
+ class AutoWebProxyScriptEngine
+ {
+ public AutoWebProxyScriptEngine (WebProxy proxy, bool useRegistry)
+ {
+ }
+
+ public Uri AutomaticConfigurationScript { get; set; }
+ public bool AutomaticallyDetectSettings { get; set; }
+
+ public bool GetProxies (Uri destination, out IList<string> proxyList)
+ {
+ int i = 0;
+ return GetProxies (destination, out proxyList, ref i);
+ }
+
+ public bool GetProxies(Uri destination, out IList<string> proxyList, ref int syncStatus)
+ {
+ proxyList = null;
+ return false;
+ }
+
+ public void Close ()
+ {
+ }
+
+ public void Abort (ref int syncStatus)
+ {
+ }
+
+ public void CheckForChanges ()
+ {
+ }
+
+#if !MOBILE
+ public WebProxyData GetWebProxyData ()
+ {
+ WebProxyData data;
+
+ // TODO: Could re-use some pieces from _AutoWebProxyScriptEngine.cs
+ if (IsWindows ()) {
+ data = InitializeRegistryGlobalProxy ();
+ if (data != null)
+ return data;
+ }
+
+ data = ReadEnvVariables ();
+ return data ?? new WebProxyData ();
+ }
+
+ WebProxyData ReadEnvVariables ()
+ {
+ string address = Environment.GetEnvironmentVariable ("http_proxy") ?? Environment.GetEnvironmentVariable ("HTTP_PROXY");
+
+ if (address != null) {
+ try {
+ if (!address.StartsWith ("http://"))
+ address = "http://" + address;
+
+ Uri uri = new Uri (address);
+ IPAddress ip;
+
+ if (IPAddress.TryParse (uri.Host, out ip)) {
+ if (IPAddress.Any.Equals (ip)) {
+ UriBuilder builder = new UriBuilder (uri);
+ builder.Host = "127.0.0.1";
+ uri = builder.Uri;
+ } else if (IPAddress.IPv6Any.Equals (ip)) {
+ UriBuilder builder = new UriBuilder (uri);
+ builder.Host = "[::1]";
+ uri = builder.Uri;
+ }
+ }
+
+ bool bBypassOnLocal = false;
+ ArrayList al = new ArrayList ();
+ string bypass = Environment.GetEnvironmentVariable ("no_proxy") ?? Environment.GetEnvironmentVariable ("NO_PROXY");
+
+ if (bypass != null) {
+ string[] bypassList = bypass.Split (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+
+ foreach (string str in bypassList) {
+ if (str != "*.local")
+ al.Add (str);
+ else
+ bBypassOnLocal = true;
+ }
+ }
+
+ return new WebProxyData {
+ proxyAddress = uri,
+ bypassOnLocal = bBypassOnLocal,
+ bypassList = CreateBypassList (al)
+ };
+ } catch (UriFormatException) {
+ }
+ }
+
+ return null;
+ }
+
+ static bool IsWindows ()
+ {
+ return (int) Environment.OSVersion.Platform < 4;
+ }
+
+ WebProxyData InitializeRegistryGlobalProxy ()
+ {
+ int iProxyEnable = (int)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyEnable", 0);
+
+ if (iProxyEnable > 0) {
+ string strHttpProxy = "";
+ bool bBypassOnLocal = false;
+ ArrayList al = new ArrayList ();
+
+ string strProxyServer = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyServer", null);
+ string strProxyOverrride = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyOverride", null);
+
+ if (strProxyServer.Contains ("=")) {
+ foreach (string strEntry in strProxyServer.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
+ if (strEntry.StartsWith ("http=")) {
+ strHttpProxy = strEntry.Substring (5);
+ break;
+ }
+ } else strHttpProxy = strProxyServer;
+
+ if (strProxyOverrride != null) {
+ string[] bypassList = strProxyOverrride.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
+
+ foreach (string str in bypassList) {
+ if (str != "<local>")
+ al.Add (str);
+ else
+ bBypassOnLocal = true;
+ }
+ }
+
+ return new WebProxyData {
+ proxyAddress = ToUri (strHttpProxy),
+ bypassOnLocal = bBypassOnLocal,
+ bypassList = CreateBypassList (al)
+ };
+ }
+
+ return null;
+ }
+
+ static Uri ToUri (string address)
+ {
+ if (address == null)
+ return null;
+
+ if (address.IndexOf ("://", StringComparison.Ordinal) == -1)
+ address = "http://" + address;
+
+ return new Uri (address);
+ }
+
+ // Takes an ArrayList of fileglob-formatted strings and returns an array of Regex-formatted strings
+ static ArrayList CreateBypassList (ArrayList al)
+ {
+ string[] result = al.ToArray (typeof (string)) as string[];
+ for (int c = 0; c < result.Length; c++)
+ {
+ result [c] = "^" +
+ Regex.Escape (result [c]).Replace (@"\*", ".*").Replace (@"\?", ".") +
+ "$";
+ }
+ return new ArrayList (result);
+ }
+#endif
+ }
+}
\ No newline at end of file
internal static void PrintInfo(TraceSource traceSource, object obj, string method, string msg) {
}
+ [Conditional ("TRACE")]
+ internal static void PrintInfo(TraceSource traceSource, object obj, string msg) {
+ }
+
+ [Conditional ("TRACE")]
+ internal static void PrintInfo(TraceSource traceSource, string msg) {
+ }
+
[Conditional ("TRACE")]
internal static void PrintWarning(TraceSource traceSource, object obj, string method, string msg) {
}
[Conditional ("TRACE")]
internal static void PrintWarning(TraceSource traceSource, string msg) {
}
+
+ [Conditional ("TRACE")]
+ internal static void PrintError(TraceSource traceSource, string msg) {
+ }
}
#if MOBILE
--- /dev/null
+namespace System.Net.Cache
+{
+ class RequestCacheProtocol
+ {
+ public RequestCacheProtocol (object arg1, object arg2)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+}
\ No newline at end of file
//
// Copyright 2014 Xamarin Inc
//
-// Mono-specific additions, which are not in SR.cs.
+// Mono-specific additions, which are not in SR.cs or missing in referencesource
//
partial class SR
{
public const string mono_net_io_shutdown = "mono_net_io_shutdown";
public const string mono_net_io_renegotiate = "mono_net_io_renegotiate";
+
+ public const string net_log_set_socketoption_reuseport_default_on = "net_log_set_socketoption_reuseport_default_on";
}
+using System.Net.Security;
+
namespace System.Net.Configuration {
sealed class SettingsSectionInternal
{
#endif
internal bool HttpListenerUnescapeRequestUrl = true;
+
+
+ internal bool UseNagleAlgorithm { get; set; }
+ internal bool Expect100Continue { get; set; }
+ internal bool CheckCertificateName { get; }
+ internal int DnsRefreshTimeout { get; set; }
+ internal bool EnableDnsRoundRobin { get; set; }
+ internal bool CheckCertificateRevocationList { get; set; }
+ internal EncryptionPolicy EncryptionPolicy { get; }
}
}
+++ /dev/null
-namespace System.Net {
- //
- // Object representing default credentials
- //
- internal class SystemNetworkCredential : NetworkCredential {
- internal static readonly SystemNetworkCredential defaultCredential = new SystemNetworkCredential();
-
- // We want reference equality to work. Making this private is a good way to guarantee that.
- private SystemNetworkCredential() :
- base(string.Empty, string.Empty, string.Empty) {
- }
- }
-}
\ No newline at end of file
<DebugType>full</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>false</Optimize>\r
- <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME</DefineConstants>\r
+ <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<DebugType>pdbonly</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>true</Optimize>\r
- <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME</DefineConstants>\r
+ <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
<Compile Include="ReferenceSources\_SslState.cs" />\r
<Compile Include="ReferenceSources\_SslStream.cs" />\r
<Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+ <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
<Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
<Compile Include="ReferenceSources\CAPI.cs" />\r
<Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
<Compile Include="ReferenceSources\Internal.cs" />\r
<Compile Include="ReferenceSources\Logging.cs" />\r
<Compile Include="ReferenceSources\NativeMethods.cs" />\r
+ <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
<Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
<Compile Include="ReferenceSources\Socket.cs" />\r
<Compile Include="ReferenceSources\SR.cs" />\r
<Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
<Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
<Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
- <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
<Compile Include="ReferenceSources\Win32Exception.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
<Compile Include="System.Net\BindIPEndPoint.cs" />\r
<Compile Include="System.Net\ChunkedInputStream.cs" />\r
<Compile Include="System.Net\ChunkStream.cs" />\r
- <Compile Include="System.Net\CredentialCache.cs" />\r
<Compile Include="System.Net\DecompressionMethods.cs" />\r
<Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
<Compile Include="System.Net\DigestClient.cs" />\r
<Compile Include="System.Net\FtpStatus.cs" />\r
<Compile Include="System.Net\FtpWebRequest.cs" />\r
<Compile Include="System.Net\FtpWebResponse.cs" />\r
- <Compile Include="System.Net\GlobalProxySelection.cs" />\r
<Compile Include="System.Net\HttpConnection.cs" />\r
<Compile Include="System.Net\HttpListener.cs" />\r
<Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
<Compile Include="System.Net\WebConnectionData.cs" />\r
<Compile Include="System.Net\WebConnectionGroup.cs" />\r
<Compile Include="System.Net\WebConnectionStream.cs" />\r
- <Compile Include="System.Net\WebProxy.cs" />\r
- <Compile Include="System.Net\WebRequest.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<DebugType>full</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>false</Optimize>\r
- <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
+ <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<DebugType>pdbonly</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>true</Optimize>\r
- <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
+ <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
<Compile Include="ReferenceSources\_SslState.cs" />\r
<Compile Include="ReferenceSources\_SslStream.cs" />\r
<Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+ <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
<Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
<Compile Include="ReferenceSources\CAPI.cs" />\r
<Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
<Compile Include="ReferenceSources\Internal.cs" />\r
<Compile Include="ReferenceSources\Logging.cs" />\r
<Compile Include="ReferenceSources\NativeMethods.cs" />\r
+ <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
<Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
<Compile Include="ReferenceSources\Socket.cs" />\r
<Compile Include="ReferenceSources\SR.cs" />\r
<Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
<Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
<Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
- <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
<Compile Include="ReferenceSources\Win32Exception.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
<Compile Include="System.Net\BindIPEndPoint.cs" />\r
<Compile Include="System.Net\ChunkedInputStream.cs" />\r
<Compile Include="System.Net\ChunkStream.cs" />\r
- <Compile Include="System.Net\CredentialCache.cs" />\r
<Compile Include="System.Net\DecompressionMethods.cs" />\r
<Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
<Compile Include="System.Net\DigestClient.cs" />\r
<Compile Include="System.Net\FtpStatus.cs" />\r
<Compile Include="System.Net\FtpWebRequest.cs" />\r
<Compile Include="System.Net\FtpWebResponse.cs" />\r
- <Compile Include="System.Net\GlobalProxySelection.cs" />\r
<Compile Include="System.Net\HttpConnection.cs" />\r
<Compile Include="System.Net\HttpListener.cs" />\r
<Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
<Compile Include="System.Net\WebConnectionData.cs" />\r
<Compile Include="System.Net\WebConnectionGroup.cs" />\r
<Compile Include="System.Net\WebConnectionStream.cs" />\r
- <Compile Include="System.Net\WebProxy.cs" />\r
- <Compile Include="System.Net\WebRequest.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<DebugType>full</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>false</Optimize>\r
- <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
+ <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<DebugType>pdbonly</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>true</Optimize>\r
- <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
+ <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
<Compile Include="ReferenceSources\_SslState.cs" />\r
<Compile Include="ReferenceSources\_SslStream.cs" />\r
<Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+ <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
<Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
<Compile Include="ReferenceSources\CAPI.cs" />\r
<Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
<Compile Include="ReferenceSources\Internal.cs" />\r
<Compile Include="ReferenceSources\Logging.cs" />\r
<Compile Include="ReferenceSources\NativeMethods.cs" />\r
+ <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
<Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
<Compile Include="ReferenceSources\Socket.cs" />\r
<Compile Include="ReferenceSources\SR.cs" />\r
<Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
<Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
<Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
- <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
<Compile Include="ReferenceSources\Win32Exception.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
<Compile Include="System.Net\BindIPEndPoint.cs" />\r
<Compile Include="System.Net\ChunkedInputStream.cs" />\r
<Compile Include="System.Net\ChunkStream.cs" />\r
- <Compile Include="System.Net\CredentialCache.cs" />\r
<Compile Include="System.Net\DecompressionMethods.cs" />\r
<Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
<Compile Include="System.Net\DigestClient.cs" />\r
<Compile Include="System.Net\FtpStatus.cs" />\r
<Compile Include="System.Net\FtpWebRequest.cs" />\r
<Compile Include="System.Net\FtpWebResponse.cs" />\r
- <Compile Include="System.Net\GlobalProxySelection.cs" />\r
<Compile Include="System.Net\HttpConnection.cs" />\r
<Compile Include="System.Net\HttpListener.cs" />\r
<Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
<Compile Include="System.Net\WebConnectionData.cs" />\r
<Compile Include="System.Net\WebConnectionGroup.cs" />\r
<Compile Include="System.Net\WebConnectionStream.cs" />\r
- <Compile Include="System.Net\WebProxy.cs" />\r
- <Compile Include="System.Net\WebRequest.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
{
public virtual object Create (object parent, object configContext, XmlNode section)
{
-#if (XML_DEP)
+#if XML_DEP
if (section.Attributes != null && section.Attributes.Count != 0)
HandlersUtil.ThrowException ("Unrecognized attribute", section);
if (child.Attributes != null && child.Attributes.Count != 0)
HandlersUtil.ThrowException ("Unrecognized attribute", child);
- WebRequest.ClearPrefixes ();
+ WebRequest.PrefixList = new ArrayList ();
continue;
}
if (child.Attributes != null && child.Attributes.Count != 0)
HandlersUtil.ThrowException ("Unrecognized attribute", child);
- WebRequest.AddPrefix (prefix, type);
- continue;
+ throw new NotImplementedException ();
+ //WebRequest.PrefixList.Add (new WebRequestPrefixElement(prefix, type));
+ //continue;
}
if (name == "remove") {
if (child.Attributes != null && child.Attributes.Count != 0)
HandlersUtil.ThrowException ("Unrecognized attribute", child);
- WebRequest.RemovePrefix (prefix);
- continue;
+ throw new NotImplementedException ();
+ // WebRequest.RemovePrefix (prefix);
+ // continue;
}
HandlersUtil.ThrowException ("Unexpected element", child);
[StructLayout (LayoutKind.Sequential)]
class Win32_FIXED_INFO
{
+ // Can't have unresolvable pinvokes on ios
+#if !MOBILE
[DllImport ("iphlpapi.dll", SetLastError = true)]
static extern int GetNetworkParams (byte [] bytes, ref int size);
+#endif
static Win32_FIXED_INFO fixed_info;
static Win32_FIXED_INFO GetInstance ()
{
+#if !MOBILE
int len = 0;
byte [] bytes = null;
GetNetworkParams (null, ref len);
}
}
return info;
+#else
+ throw new NotImplementedException ();
+#endif
}
const int MAX_HOSTNAME_LEN = 128;
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if SECURITY_DEP && !MONO_FEATURE_NEW_TLS
+#if !MONO_FEATURE_NEW_TLS
namespace System.Net.Security
{
public enum EncryptionPolicy
+++ /dev/null
-//
-// System.Net.CredentialCache.cs
-//
-// Author:
-// Lawrence Pit (loz@cable.a2000.nl)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Runtime.Serialization;
-
-namespace System.Net {
- public class CredentialCache : ICredentials, IEnumerable, ICredentialsByHost
- {
- static NetworkCredential empty = new NetworkCredential (String.Empty, String.Empty, String.Empty);
- Hashtable cache;
- Hashtable cacheForHost;
-
- public CredentialCache ()
- {
- cache = new Hashtable ();
- cacheForHost = new Hashtable ();
- }
-
- [MonoTODO ("Need EnvironmentPermission implementation first")]
- public static ICredentials DefaultCredentials {
- get {
- // This is used for NTLM, Kerberos and Negotiate under MS
- return empty;
- }
- }
-
- // MS does might return a special ICredentials which does not allow getting the
- // username/password information out of it for non-internal classes.
- public static NetworkCredential DefaultNetworkCredentials {
- get { return empty; }
- }
-
- public NetworkCredential GetCredential (Uri uriPrefix, string authType)
- {
- int longestPrefix = -1;
- NetworkCredential result = null;
-
- if (uriPrefix == null || authType == null)
- return null;
-
- string absPath = uriPrefix.AbsolutePath;
- absPath = absPath.Substring (0, absPath.LastIndexOf ('/'));
-
- IDictionaryEnumerator e = cache.GetEnumerator ();
- while (e.MoveNext ()) {
- CredentialCacheKey key = e.Key as CredentialCacheKey;
-
- if (key.Length <= longestPrefix)
- continue;
-
- if (String.Compare (key.AuthType, authType, true) != 0)
- continue;
-
- Uri cachedUri = key.UriPrefix;
-
- if (cachedUri.Scheme != uriPrefix.Scheme)
- continue;
-
- if (cachedUri.Port != uriPrefix.Port)
- continue;
-
- if (cachedUri.Host != uriPrefix.Host)
- continue;
-
- if (!absPath.StartsWith (key.AbsPath))
- continue;
-
- longestPrefix = key.Length;
- result = (NetworkCredential) e.Value;
- }
-
- return result;
- }
-
- public IEnumerator GetEnumerator ()
- {
- return cache.Values.GetEnumerator ();
- }
-
- public void Add (Uri uriPrefix, string authType, NetworkCredential cred)
- {
- if (uriPrefix == null)
- throw new ArgumentNullException ("uriPrefix");
-
- if (authType == null)
- throw new ArgumentNullException ("authType");
-
- // throws ArgumentException when same key already exists.
- cache.Add (new CredentialCacheKey (uriPrefix, authType), cred);
- }
-
- public void Remove (Uri uriPrefix, string authType)
- {
- if (uriPrefix == null)
- throw new ArgumentNullException ("uriPrefix");
-
- if (authType == null)
- throw new ArgumentNullException ("authType");
-
- cache.Remove (new CredentialCacheKey (uriPrefix, authType));
- }
-
- public NetworkCredential GetCredential (string host, int port, string authenticationType)
- {
- NetworkCredential result = null;
-
- if (host == null || port < 0 || authenticationType == null)
- return null;
-
- IDictionaryEnumerator e = cacheForHost.GetEnumerator ();
- while (e.MoveNext ()) {
- CredentialCacheForHostKey key = e.Key as CredentialCacheForHostKey;
-
- if (String.Compare (key.AuthType, authenticationType, true) != 0)
- continue;
-
- if (key.Host != host)
- continue;
-
- if (key.Port != port)
- continue;
-
- result = (NetworkCredential) e.Value;
- }
-
- return result;
- }
-
- public void Add (string host, int port, string authenticationType, NetworkCredential credential)
- {
- if (host == null)
- throw new ArgumentNullException("host");
-
- if (port < 0)
- throw new ArgumentOutOfRangeException("port");
-
- if (authenticationType == null)
- throw new ArgumentOutOfRangeException("authenticationType");
-
- cacheForHost.Add (new CredentialCacheForHostKey (host, port, authenticationType), credential);
- }
-
- public void Remove (string host, int port, string authenticationType)
- {
- if (host == null)
- return;
-
- if (authenticationType == null)
- return;
-
- cacheForHost.Remove (new CredentialCacheForHostKey (host, port, authenticationType));
- }
-
- class CredentialCacheKey {
- Uri uriPrefix;
- string authType;
- string absPath;
- int len;
- int hash;
-
- internal CredentialCacheKey (Uri uriPrefix, string authType)
- {
- this.uriPrefix = uriPrefix;
- this.authType = authType;
-
- this.absPath = uriPrefix.AbsolutePath;
- this.absPath = absPath.Substring (0, absPath.LastIndexOf ('/'));
-
- this.len = uriPrefix.AbsoluteUri.Length;
- this.hash = uriPrefix.GetHashCode ()
- + authType.GetHashCode ();
- }
-
- public int Length {
- get { return len; }
- }
-
- public string AbsPath {
- get { return absPath; }
- }
-
- public Uri UriPrefix {
- get { return uriPrefix; }
- }
-
- public string AuthType {
- get { return authType; }
- }
-
- public override int GetHashCode ()
- {
- return hash;
- }
-
- public override bool Equals (object obj)
- {
- CredentialCacheKey key = obj as CredentialCacheKey;
- return ((key != null) && (this.hash == key.hash));
- }
-
- public override string ToString ()
- {
- return absPath + " : " + authType + " : len=" + len;
- }
- }
-
- class CredentialCacheForHostKey {
- string host;
- int port;
- string authType;
- int hash;
-
- internal CredentialCacheForHostKey (string host, int port, string authType)
- {
- this.host = host;
- this.port = port;
- this.authType = authType;
-
- this.hash = host.GetHashCode ()
- + port.GetHashCode ()
- + authType.GetHashCode ();
- }
-
- public string Host {
- get { return host; }
- }
-
- public int Port {
- get { return port; }
- }
-
- public string AuthType {
- get { return authType; }
- }
-
- public override int GetHashCode ()
- {
- return hash;
- }
-
- public override bool Equals (object obj)
- {
- CredentialCacheForHostKey key = obj as CredentialCacheForHostKey;
- return ((key != null) && (this.hash == key.hash));
- }
-
- public override string ToString ()
- {
- return host + " : " + authType;
- }
- }
-}
-}
-
-
+++ /dev/null
-//
-// System.Net.GlobalProxySelection
-//
-// Author:
-// Lawrence Pit (loz@cable.a2000.nl)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Configuration;
-using System.IO;
-using System.Runtime.Serialization;
-using System.Net.Configuration;
-
-namespace System.Net
-{
- [ObsoleteAttribute("Use WebRequest.DefaultProxy instead")]
- public class GlobalProxySelection
- {
- // Constructors
- public GlobalProxySelection() { }
-
- // Properties
-
- public static IWebProxy Select {
- get { return WebRequest.DefaultWebProxy; }
- set { WebRequest.DefaultWebProxy = value; }
- }
-
- // Methods
-
- public static IWebProxy GetEmptyWebProxy()
- {
- // must return a new one each time, as the credentials
- // can be set
- return new EmptyWebProxy ();
- }
-
- // Internal Classes
-
- internal class EmptyWebProxy : IWebProxy {
- private ICredentials credentials = null;
-
- internal EmptyWebProxy () { }
-
- public ICredentials Credentials {
- get { return credentials; }
- set { credentials = value; }
- }
-
- public Uri GetProxy (Uri destination)
- {
- return destination;
- }
-
- public bool IsBypassed (Uri host)
- {
- return true; // pass directly to host
- }
- }
- }
-}
{
this.requestUri = uri;
this.actualUri = uri;
- this.proxy = GlobalProxySelection.Select;
+ this.proxy = InternalDefaultWebProxy;
this.webHeaders = new WebHeaderCollection (WebHeaderCollectionType.HttpWebRequest);
ThrowOnError = true;
ResetAuthorization ();
if (wce != null) {
WebConnection cnc = wce.Connection;
cnc.PriorityRequest = this;
- ICredentials creds = !isProxy ? credentials : proxy.Credentials;
+ ICredentials creds = (!isProxy || proxy == null) ? credentials : proxy.Credentials;
if (creds != null) {
cnc.NtlmCredential = creds.GetCredential (requestUri, "NTLM");
cnc.UnsafeAuthenticatedConnectionSharing = unsafe_auth_blah;
return;
}
- bool isProxy = ProxyQuery && !proxy.IsBypassed (actualUri);
+ bool isProxy = ProxyQuery && proxy != null && !proxy.IsBypassed (actualUri);
bool redirected;
try {
public static ServicePoint FindServicePoint (Uri address)
{
- return FindServicePoint (address, GlobalProxySelection.Select);
+ return FindServicePoint (address, null);
}
public static ServicePoint FindServicePoint (string uriString, IWebProxy proxy)
// Copyright 2013-2014 Xamarin Inc.
//
+#if MOBILE
+
using System;
using System.Collections.Generic;
public static CipherSuitesCallback ServerCipherSuitesCallback { get; set; }
}
}
+
+#endif
+++ /dev/null
-//
-// System.Net.WebProxy.cs
-//
-// Authors:
-// Lawrence Pit (loz@cable.a2000.nl)
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Globalization;
-using System.Runtime.Serialization;
-using System.Text.RegularExpressions;
-
-namespace System.Net
-{
- [Serializable]
- public class WebProxy : IWebProxy, ISerializable
- {
- Uri address;
- bool bypassOnLocal;
- ArrayList bypassList;
- ICredentials credentials;
- bool useDefaultCredentials;
-
- // Constructors
-
- public WebProxy ()
- : this ((Uri) null, false, null, null) {}
-
- public WebProxy (string address)
- : this (ToUri (address), false, null, null) {}
-
- public WebProxy (Uri address)
- : this (address, false, null, null) {}
-
- public WebProxy (string address, bool bypassOnLocal)
- : this (ToUri (address), bypassOnLocal, null, null) {}
-
- public WebProxy (string host, int port)
- : this (new Uri ("http://" + host + ":" + port)) {}
-
- public WebProxy (Uri address, bool bypassOnLocal)
- : this (address, bypassOnLocal, null, null) {}
-
- public WebProxy (string address, bool bypassOnLocal, string [] bypassList)
- : this (ToUri (address), bypassOnLocal, bypassList, null) {}
-
- public WebProxy (Uri address, bool bypassOnLocal, string [] bypassList)
- : this (address, bypassOnLocal, bypassList, null) {}
-
- public WebProxy (string address, bool bypassOnLocal, string [] bypassList,
- ICredentials credentials)
- : this (ToUri (address), bypassOnLocal, bypassList, credentials) {}
-
- public WebProxy (Uri address, bool bypassOnLocal,
- string[] bypassList, ICredentials credentials)
- {
- this.address = address;
- this.bypassOnLocal = bypassOnLocal;
- if (bypassList != null)
- this.bypassList = new ArrayList (bypassList);
- this.credentials = credentials;
- CheckBypassList ();
- }
-
- protected WebProxy (SerializationInfo serializationInfo, StreamingContext streamingContext)
- {
- this.address = (Uri) serializationInfo.GetValue ("_ProxyAddress", typeof (Uri));
- this.bypassOnLocal = serializationInfo.GetBoolean ("_BypassOnLocal");
- this.bypassList = (ArrayList) serializationInfo.GetValue ("_BypassList", typeof (ArrayList));
- this.useDefaultCredentials = serializationInfo.GetBoolean ("_UseDefaultCredentials");
- this.credentials = null;
- CheckBypassList ();
- }
-
- // Properties
- public Uri Address {
- get { return address; }
- set { address = value; }
- }
-
- public ArrayList BypassArrayList {
- get {
- if (bypassList == null)
- bypassList = new ArrayList ();
- return bypassList;
- }
- }
-
- public string [] BypassList {
- get { return (string []) BypassArrayList.ToArray (typeof (string)); }
- set {
- if (value == null)
- throw new ArgumentNullException ();
- bypassList = new ArrayList (value);
- CheckBypassList ();
- }
- }
-
- public bool BypassProxyOnLocal {
- get { return bypassOnLocal; }
- set { bypassOnLocal = value; }
- }
-
- public ICredentials Credentials {
- get { return credentials; }
- set { credentials = value; }
- }
-
- [MonoTODO ("Does not affect Credentials, since CredentialCache.DefaultCredentials is not implemented.")]
- public bool UseDefaultCredentials {
- get { return useDefaultCredentials; }
- set { useDefaultCredentials = value; }
- }
-
- // Methods
- [Obsolete ("This method has been deprecated", false)]
- [MonoTODO("Can we get this info under windows from the system?")]
- public static WebProxy GetDefaultProxy ()
- {
- // Select gets a WebProxy from config files, if available.
- IWebProxy p = GlobalProxySelection.Select;
- if (p is WebProxy)
- return (WebProxy) p;
-
- return new WebProxy ();
- }
-
- public Uri GetProxy (Uri destination)
- {
- if (IsBypassed (destination))
- return destination;
-
- return address;
- }
-
- public bool IsBypassed (Uri host)
- {
- if (host == null)
- throw new ArgumentNullException ("host");
-
- if (host.IsLoopback && bypassOnLocal)
- return true;
-
- if (address == null)
- return true;
-
- string server = host.Host;
- if (bypassOnLocal && server.IndexOf ('.') == -1)
- return true;
-
- // LAMESPEC
- if (!bypassOnLocal) {
- if (String.Compare (server, "localhost", true, CultureInfo.InvariantCulture) == 0)
- return true;
- if (String.Compare (server, "loopback", true, CultureInfo.InvariantCulture) == 0)
- return true;
-
- IPAddress addr = null;
- if (IPAddress.TryParse (server, out addr) && IPAddress.IsLoopback (addr))
- return true;
- }
-
- if (bypassList == null || bypassList.Count == 0)
- return false;
-
- try {
- string hostStr = host.Scheme + "://" + host.Authority;
- int i = 0;
- for (; i < bypassList.Count; i++) {
- Regex regex = new Regex ((string) bypassList [i],
- // TODO: RegexOptions.Compiled | // not implemented yet by Regex
- RegexOptions.IgnoreCase |
- RegexOptions.Singleline);
-
- if (regex.IsMatch (hostStr))
- break;
- }
-
- if (i == bypassList.Count)
- return false;
-
- // continue checking correctness of regular expressions..
- // will throw expression when an invalid one is found
- for (; i < bypassList.Count; i++)
- new Regex ((string) bypassList [i]);
-
- return true;
- } catch (ArgumentException) {
- return false;
- }
- }
-
- protected virtual void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
- {
- serializationInfo.AddValue ("_BypassOnLocal", bypassOnLocal);
- serializationInfo.AddValue ("_ProxyAddress", address);
- serializationInfo.AddValue ("_BypassList", bypassList);
- serializationInfo.AddValue ("_UseDefaultCredentials", UseDefaultCredentials);
- }
-
- void ISerializable.GetObjectData (SerializationInfo serializationInfo,
- StreamingContext streamingContext)
- {
- GetObjectData (serializationInfo, streamingContext);
- }
-
- // Private Methods
- // this compiles the regular expressions, and will throw
- // an exception when an invalid one is found.
- void CheckBypassList ()
- {
- if (bypassList == null)
- return;
- for (int i = 0; i < bypassList.Count; i++)
- new Regex ((string) bypassList [i]);
- }
-
- static Uri ToUri (string address)
- {
- if (address == null)
- return null;
-
- if (address.IndexOf ("://", StringComparison.Ordinal) == -1)
- address = "http://" + address;
-
- return new Uri (address);
- }
- }
-}
+++ /dev/null
-//
-// System.Net.WebRequest
-//
-// Authors:
-// Lawrence Pit (loz@cable.a2000.nl)
-// Marek Safar (marek.safar@gmail.com)
-//
-// Copyright 2011 Xamarin Inc.
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Collections.Specialized;
-using System.Configuration;
-using System.IO;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Globalization;
-using System.Net.Configuration;
-using System.Net.Security;
-using System.Net.Cache;
-using System.Security.Principal;
-using System.Threading.Tasks;
-using System.Text.RegularExpressions;
-using Mono.Net;
-
-#if NET_2_1
-using ConfigurationException = System.ArgumentException;
-
-namespace System.Net.Configuration {
- class Dummy {}
-}
-#endif
-
-namespace System.Net
-{
- [Serializable]
- public abstract class WebRequest : MarshalByRefObject, ISerializable {
- static HybridDictionary prefixes = new HybridDictionary ();
- static bool isDefaultWebProxySet;
- static IWebProxy defaultWebProxy;
- static RequestCachePolicy defaultCachePolicy;
-
- internal const int DefaultTimeout = 100000;
-
- static WebRequest ()
- {
-#if MOBILE
- IWebRequestCreate http = new HttpRequestCreator ();
- RegisterPrefix ("http", http);
- RegisterPrefix ("https", http);
- RegisterPrefix ("file", new FileWebRequestCreator ());
- RegisterPrefix ("ftp", new FtpRequestCreator ());
-#else
- #if CONFIGURATION_DEP
- object cfg = ConfigurationManager.GetSection ("system.net/webRequestModules");
- WebRequestModulesSection s = cfg as WebRequestModulesSection;
- if (s != null) {
- foreach (WebRequestModuleElement el in
- s.WebRequestModules)
- AddPrefix (el.Prefix, el.Type);
- return;
- }
- #endif
- ConfigurationSettings.GetConfig ("system.net/webRequestModules");
-#endif
- }
-
- protected WebRequest ()
- {
- }
-
- protected WebRequest (SerializationInfo serializationInfo, StreamingContext streamingContext)
- {
- }
-
- static Exception GetMustImplement ()
- {
- return new NotImplementedException ("This method must be implemented in derived classes");
- }
-
- // Properties
-
- private AuthenticationLevel authentication_level = AuthenticationLevel.MutualAuthRequested;
-
- public AuthenticationLevel AuthenticationLevel
- {
- get {
- return(authentication_level);
- }
- set {
- authentication_level = value;
- }
- }
-
- public virtual string ConnectionGroupName {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual long ContentLength {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual string ContentType {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual ICredentials Credentials {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- [MonoTODO ("Implement the caching system. Currently always returns a policy with the NoCacheNoStore level")]
- public virtual RequestCachePolicy CachePolicy
- {
- get { return DefaultCachePolicy; }
- set {
- }
- }
-
- public static RequestCachePolicy DefaultCachePolicy {
- get {
- return defaultCachePolicy ?? (defaultCachePolicy = new HttpRequestCachePolicy (HttpRequestCacheLevel.NoCacheNoStore));
- }
- set {
- throw GetMustImplement ();
- }
- }
-
- public virtual WebHeaderCollection Headers {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
-
- public virtual string Method {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual bool PreAuthenticate {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual IWebProxy Proxy {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual Uri RequestUri {
- get { throw GetMustImplement (); }
- }
-
- public virtual int Timeout {
- get { throw GetMustImplement (); }
- set { throw GetMustImplement (); }
- }
-
- public virtual bool UseDefaultCredentials
- {
- get {
- throw GetMustImplement ();
- }
- set {
- throw GetMustImplement ();
- }
- }
-
- public TokenImpersonationLevel ImpersonationLevel { get; set; }
-
-// volatile static IWebProxy proxy;
- static readonly object lockobj = new object ();
-
- public static IWebProxy DefaultWebProxy {
- get {
- if (!isDefaultWebProxySet) {
- lock (lockobj) {
- if (defaultWebProxy == null)
- defaultWebProxy = GetDefaultWebProxy ();
- }
- }
- return defaultWebProxy;
- }
- set {
- /* MS documentation states that a null value would cause an ArgumentNullException
- * but that's not the way it behaves:
- * https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=304724
- */
- defaultWebProxy = value;
- isDefaultWebProxySet = true;
- }
- }
-
- internal static IWebProxy InternalDefaultWebProxy {
- get {
- return DefaultWebProxy;
- }
- }
-
-
- [MonoTODO("Needs to respect Module, Proxy.AutoDetect, and Proxy.ScriptLocation config settings")]
- static IWebProxy GetDefaultWebProxy ()
- {
-#if CONFIGURATION_DEP
- DefaultProxySection sec = ConfigurationManager.GetSection ("system.net/defaultProxy") as DefaultProxySection;
- WebProxy p;
-
- if (sec == null)
- return GetSystemWebProxy ();
-
- ProxyElement pe = sec.Proxy;
-
- if ((pe.UseSystemDefault != ProxyElement.UseSystemDefaultValues.False) && (pe.ProxyAddress == null)) {
- IWebProxy proxy = GetSystemWebProxy ();
-
- if (!(proxy is WebProxy))
- return proxy;
-
- p = (WebProxy) proxy;
- } else
- p = new WebProxy ();
-
- if (pe.ProxyAddress != null)
- p.Address = pe.ProxyAddress;
-
- if (pe.BypassOnLocal != ProxyElement.BypassOnLocalValues.Unspecified)
- p.BypassProxyOnLocal = (pe.BypassOnLocal == ProxyElement.BypassOnLocalValues.True);
-
- foreach(BypassElement elem in sec.BypassList)
- p.BypassArrayList.Add(elem.Address);
-
- return p;
-#else
- return GetSystemWebProxy ();
-#endif
- }
-
- // Methods
-
- public virtual void Abort()
- {
- throw GetMustImplement ();
- }
-
- public virtual IAsyncResult BeginGetRequestStream (AsyncCallback callback, object state)
- {
- throw GetMustImplement ();
- }
-
- public virtual IAsyncResult BeginGetResponse (AsyncCallback callback, object state)
- {
- throw GetMustImplement ();
- }
-
- public static WebRequest Create (string requestUriString)
- {
- if (requestUriString == null)
- throw new ArgumentNullException ("requestUriString");
- return Create (new Uri (requestUriString));
- }
-
- public static WebRequest Create (Uri requestUri)
- {
- if (requestUri == null)
- throw new ArgumentNullException ("requestUri");
- return GetCreator (requestUri.AbsoluteUri).Create (requestUri);
- }
-
- public static WebRequest CreateDefault (Uri requestUri)
- {
- if (requestUri == null)
- throw new ArgumentNullException ("requestUri");
- return GetCreator (requestUri.Scheme).Create (requestUri);
- }
- static HttpWebRequest SharedCreateHttp (Uri uri)
- {
- if (uri.Scheme != "http" && uri.Scheme != "https")
- throw new NotSupportedException ("The uri should start with http or https");
-
- return new HttpWebRequest (uri);
- }
-
- public static HttpWebRequest CreateHttp (string requestUriString)
- {
- if (requestUriString == null)
- throw new ArgumentNullException ("requestUriString");
- return SharedCreateHttp (new Uri (requestUriString));
- }
-
- public static HttpWebRequest CreateHttp (Uri requestUri)
- {
- if (requestUri == null)
- throw new ArgumentNullException ("requestUri");
- return SharedCreateHttp (requestUri);
- }
- public virtual Stream EndGetRequestStream (IAsyncResult asyncResult)
- {
- throw GetMustImplement ();
- }
-
- public virtual WebResponse EndGetResponse (IAsyncResult asyncResult)
- {
- throw GetMustImplement ();
- }
-
- public virtual Stream GetRequestStream()
- {
- throw GetMustImplement ();
- }
-
- public virtual WebResponse GetResponse()
- {
- throw GetMustImplement ();
- }
-
- // Takes an ArrayList of fileglob-formatted strings and returns an array of Regex-formatted strings
- private static string[] CreateBypassList (ArrayList al)
- {
- string[] result = al.ToArray (typeof (string)) as string[];
- for (int c = 0; c < result.Length; c++)
- {
- result [c] = "^" +
- Regex.Escape (result [c]).Replace (@"\*", ".*").Replace (@"\?", ".") +
- "$";
- }
- return result;
- }
-
- [MonoTODO("Look in other places for proxy config info")]
- public static IWebProxy GetSystemWebProxy ()
- {
-#if MONOTOUCH
- return CFNetwork.GetDefaultProxy ();
-#else
-#if MONODROID
- // Return the system web proxy. This only works for ICS+.
- var androidProxy = AndroidPlatform.GetDefaultProxy ();
- if (androidProxy != null)
- return androidProxy;
-#endif
-#if !NET_2_1
- if (IsWindows ()) {
- int iProxyEnable = (int)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyEnable", 0);
-
- if (iProxyEnable > 0) {
- string strHttpProxy = "";
- bool bBypassOnLocal = false;
- ArrayList al = new ArrayList ();
-
- string strProxyServer = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyServer", null);
- string strProxyOverrride = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyOverride", null);
-
- if (strProxyServer.Contains ("=")) {
- foreach (string strEntry in strProxyServer.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
- if (strEntry.StartsWith ("http=")) {
- strHttpProxy = strEntry.Substring (5);
- break;
- }
- } else strHttpProxy = strProxyServer;
-
- if (strProxyOverrride != null) {
- string[] bypassList = strProxyOverrride.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
-
- foreach (string str in bypassList) {
- if (str != "<local>")
- al.Add (str);
- else
- bBypassOnLocal = true;
- }
- }
-
- return new WebProxy (strHttpProxy, bBypassOnLocal, CreateBypassList (al));
- }
- } else {
-#endif
- if (Platform.IsMacOS)
- return CFNetwork.GetDefaultProxy ();
-
- string address = Environment.GetEnvironmentVariable ("http_proxy");
-
- if (address == null)
- address = Environment.GetEnvironmentVariable ("HTTP_PROXY");
-
- if (address != null) {
- try {
- if (!address.StartsWith ("http://"))
- address = "http://" + address;
-
- Uri uri = new Uri (address);
- IPAddress ip;
-
- if (IPAddress.TryParse (uri.Host, out ip)) {
- if (IPAddress.Any.Equals (ip)) {
- UriBuilder builder = new UriBuilder (uri);
- builder.Host = "127.0.0.1";
- uri = builder.Uri;
- } else if (IPAddress.IPv6Any.Equals (ip)) {
- UriBuilder builder = new UriBuilder (uri);
- builder.Host = "[::1]";
- uri = builder.Uri;
- }
- }
-
- bool bBypassOnLocal = false;
- ArrayList al = new ArrayList ();
- string bypass = Environment.GetEnvironmentVariable ("no_proxy");
-
- if (bypass == null)
- bypass = Environment.GetEnvironmentVariable ("NO_PROXY");
-
- if (bypass != null) {
- string[] bypassList = bypass.Split (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
-
- foreach (string str in bypassList) {
- if (str != "*.local")
- al.Add (str);
- else
- bBypassOnLocal = true;
- }
- }
-
- return new WebProxy (uri, bBypassOnLocal, CreateBypassList (al));
- } catch (UriFormatException) {
- }
- }
-#if !NET_2_1
- }
-#endif
-
- return new WebProxy ();
-#endif // MONOTOUCH
- }
-
- void ISerializable.GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
- {
- GetObjectData(serializationInfo, streamingContext);
- }
-
- protected virtual void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
- {
- }
-
- public static bool RegisterPrefix (string prefix, IWebRequestCreate creator)
- {
- if (prefix == null)
- throw new ArgumentNullException ("prefix");
- if (creator == null)
- throw new ArgumentNullException ("creator");
-
- lock (prefixes.SyncRoot) {
- string lowerCasePrefix = prefix.ToLower (CultureInfo.InvariantCulture);
- if (prefixes.Contains (lowerCasePrefix))
- return false;
- prefixes.Add (lowerCasePrefix, creator);
- }
- return true;
- }
-
- private static IWebRequestCreate GetCreator (string prefix)
- {
- int longestPrefix = -1;
- IWebRequestCreate creator = null;
-
- prefix = prefix.ToLower (CultureInfo.InvariantCulture);
-
- IDictionaryEnumerator e = prefixes.GetEnumerator ();
- while (e.MoveNext ()) {
- string key = e.Key as string;
-
- if (key.Length <= longestPrefix)
- continue;
-
- if (!prefix.StartsWith (key))
- continue;
-
- longestPrefix = key.Length;
- creator = (IWebRequestCreate) e.Value;
- }
-
- if (creator == null)
- throw new NotSupportedException (prefix);
-
- return creator;
- }
-
- internal static bool IsWindows ()
- {
- return (int) Environment.OSVersion.Platform < 4;
- }
-
- internal static void ClearPrefixes ()
- {
- prefixes.Clear ();
- }
-
- internal static void RemovePrefix (string prefix)
- {
- prefixes.Remove (prefix);
- }
-
- internal static void AddPrefix (string prefix, string typeName)
- {
- Type type = Type.GetType (typeName);
- if (type == null)
- throw new ConfigurationException (String.Format ("Type {0} not found", typeName));
- AddPrefix (prefix, type);
- }
-
- internal static void AddPrefix (string prefix, Type type)
- {
- object o = Activator.CreateInstance (type, true);
- prefixes [prefix] = o;
- }
-
- public virtual Task<Stream> GetRequestStreamAsync ()
- {
- return Task<Stream>.Factory.FromAsync (BeginGetRequestStream, EndGetRequestStream, null);
- }
-
- public virtual Task<WebResponse> GetResponseAsync ()
- {
- return Task<WebResponse>.Factory.FromAsync (BeginGetResponse, EndGetResponse, null);
- }
- }
-}
System.Net.Configuration/WebRequestModuleElement.cs
System.Net.Configuration/WebRequestModuleHandler.cs
System.Net.Configuration/WebRequestModulesSection.cs
-System.Net/CredentialCache.cs
System.Net/DecompressionMethods.cs
System.Net/DefaultCertificatePolicy.cs
System.Net/DigestClient.cs
System.Net/FtpWebRequest.cs
System.Net/FtpStatus.cs
System.Net/FtpWebResponse.cs
-System.Net/GlobalProxySelection.cs
System.Net/HttpConnection.cs
System.Net/HttpListenerBasicIdentity.cs
System.Net/HttpListenerContext.cs
System.Net/WebConnectionData.cs
System.Net/WebConnectionGroup.cs
System.Net/WebConnectionStream.cs
-System.Net/WebProxy.cs
-System.Net/WebRequest.cs
System.Net.WebSockets/ClientWebSocket.cs
System.Net.WebSockets/ClientWebSocketOptions.cs
System.Net.WebSockets/HttpListenerWebSocketContext.cs
Mono.Net.Security/NoReflectionHelper.cs
Mono.Net.Security/SystemCertificateValidator.cs
+ReferenceSources/AutoWebProxyScriptEngine.cs
ReferenceSources/AssertWrapper.cs
ReferenceSources/BinaryCompatibility.cs
ReferenceSources/ConfigurationManagerInternalFactory.cs
ReferenceSources/HttpSysSettings.cs
ReferenceSources/Logging.cs
ReferenceSources/NativeMethods.cs
+ReferenceSources/RequestCacheProtocol.cs
ReferenceSources/SettingsSectionInternal.cs
ReferenceSources/Socket.cs
ReferenceSources/SR.cs
ReferenceSources/SR2.cs
ReferenceSources/SRCategoryAttribute.cs
-ReferenceSources/SystemNetworkCredential.cs
ReferenceSources/Win32Exception.cs
ReferenceSources/SSPIConfiguration.cs
../referencesource/System/net/System/Net/_BufferOffsetSize.cs
../referencesource/System/net/System/Net/_Connection.cs
+../referencesource/System/net/System/Net/_emptywebproxy.cs
../referencesource/System/net/System/Net/_HeaderInfo.cs
../referencesource/System/net/System/Net/_HeaderInfoTable.cs
../referencesource/System/net/System/Net/_HTTPDateParse.cs
../referencesource/System/net/System/Net/_NetRes.cs
../referencesource/System/net/System/Net/_LazyAsyncResult.cs
../referencesource/System/net/System/Net/_LoggingObject.cs
+../referencesource/System/net/System/Net/_ProxyChain.cs
../referencesource/System/net/System/Net/_ScatterGatherBuffers.cs
+../referencesource/System/net/System/Net/_TimerThread.cs
+../referencesource/System/net/System/Net/_WebProxyDataBuilder.cs
../referencesource/System/net/System/Net/AuthenticationScheme.cs
../referencesource/System/net/System/Net/AuthenticationSchemeSelector.cs
../referencesource/System/net/System/Net/Authorization.cs
+../referencesource/System/net/System/Net/CredentialCache.cs
../referencesource/System/net/System/Net/cookie.cs
../referencesource/System/net/System/Net/cookiecollection.cs
../referencesource/System/net/System/Net/cookiecontainer.cs
../referencesource/System/net/System/Net/FtpStatusCode.cs
../referencesource/System/net/System/Net/filewebrequest.cs
../referencesource/System/net/System/Net/filewebresponse.cs
+../referencesource/System/net/System/Net/GlobalProxySelection.cs
../referencesource/System/net/System/Net/HttpListenerException.cs
../referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
../referencesource/System/net/System/Net/HttpRequestHeader.cs
../referencesource/System/net/System/Net/IPEndPoint.cs
../referencesource/System/net/System/Net/IPHostEntry.cs
../referencesource/System/net/System/Net/iwebproxy.cs
+../referencesource/System/net/System/Net/IWebProxyFinder.cs
../referencesource/System/net/System/Net/IWebRequestCreate.cs
../referencesource/System/net/System/Net/NetworkAccess.cs
../referencesource/System/net/System/Net/ProtocolViolationException.cs
../referencesource/System/net/System/Net/WebExceptionStatus.cs
../referencesource/System/net/System/Net/WebHeaderCollection.cs
../referencesource/System/net/System/Net/WebPermission.cs
+../referencesource/System/net/System/Net/webproxy.cs
../referencesource/System/net/System/Net/WebRequestMethods.cs
+../referencesource/System/net/System/Net/WebRequest.cs
../referencesource/System/net/System/Net/WebResponse.cs
../referencesource/System/net/System/Net/WebUtility.cs
../referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
+../referencesource/System/net/System/Net/Cache/RequestCache.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheEntry.cs
../referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheManager.cs
+
+../referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
../referencesource/System/net/System/Net/Sockets/IPProtectionLevel.cs
../referencesource/System/net/System/Net/Sockets/NetworkStream.cs
Assert.AreEqual (1, p.BypassList.Length, "#4");
}
- [Test]
- public void GetProxy ()
- {
- }
-
[Test]
public void IsByPassed ()
{
System.Net/BindIPEndPoint.cs
System.Net/ChunkStream.cs
System.Net/ChunkedInputStream.cs
-System.Net/CredentialCache.cs
System.Net/DecompressionMethods.cs
System.Net/DefaultCertificatePolicy.cs
System.Net/DigestClient.cs
System.Net/FtpStatus.cs
System.Net/FtpWebRequest.cs
System.Net/FtpWebResponse.cs
-System.Net/GlobalProxySelection.cs
System.Net/HttpConnection.cs
System.Net/HttpListener.cs
System.Net/HttpListenerBasicIdentity.cs
System.Net/WebConnectionData.cs
System.Net/WebConnectionGroup.cs
System.Net/WebConnectionStream.cs
-System.Net/WebProxy.cs
-System.Net/WebRequest.cs
System.Net.WebSockets/ClientWebSocket.cs
System.Net.WebSockets/ClientWebSocketOptions.cs
System.Net.WebSockets/HttpListenerWebSocketContext.cs
Mono.Net.Security/NoReflectionHelper.cs
Mono.Net.Security/SystemCertificateValidator.cs
+ReferenceSources/AutoWebProxyScriptEngine.cs
ReferenceSources/AssertWrapper.cs
ReferenceSources/CAPI.cs
ReferenceSources/EnvironmentHelpers.cs
ReferenceSources/HttpSysSettings.cs
ReferenceSources/Logging.cs
ReferenceSources/NativeMethods.cs
+ReferenceSources/RequestCacheProtocol.cs
ReferenceSources/SettingsSectionInternal.cs
ReferenceSources/Socket.cs
ReferenceSources/SR.cs
ReferenceSources/SRCategoryAttribute.cs
-ReferenceSources/SystemNetworkCredential.cs
ReferenceSources/Win32Exception.cs
../referencesource/System/regex/system/text/regularexpressions/Regex.cs
../referencesource/System/net/System/Net/_BufferOffsetSize.cs
../referencesource/System/net/System/Net/_Connection.cs
+../referencesource/System/net/System/Net/_emptywebproxy.cs
../referencesource/System/net/System/Net/_HeaderInfo.cs
../referencesource/System/net/System/Net/_HeaderInfoTable.cs
../referencesource/System/net/System/Net/_HTTPDateParse.cs
../referencesource/System/net/System/Net/_NetRes.cs
../referencesource/System/net/System/Net/_LazyAsyncResult.cs
../referencesource/System/net/System/Net/_LoggingObject.cs
+../referencesource/System/net/System/Net/_ProxyChain.cs
../referencesource/System/net/System/Net/_ScatterGatherBuffers.cs
+../referencesource/System/net/System/Net/_TimerThread.cs
+../referencesource/System/net/System/Net/_WebProxyDataBuilder.cs
../referencesource/System/net/System/Net/AuthenticationScheme.cs
../referencesource/System/net/System/Net/AuthenticationSchemeSelector.cs
../referencesource/System/net/System/Net/Authorization.cs
+../referencesource/System/net/System/Net/CredentialCache.cs
../referencesource/System/net/System/Net/cookie.cs
../referencesource/System/net/System/Net/cookiecollection.cs
../referencesource/System/net/System/Net/cookiecontainer.cs
../referencesource/System/net/System/Net/FtpStatusCode.cs
../referencesource/System/net/System/Net/filewebrequest.cs
../referencesource/System/net/System/Net/filewebresponse.cs
+../referencesource/System/net/System/Net/GlobalProxySelection.cs
../referencesource/System/net/System/Net/HttpListenerException.cs
+../referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
../referencesource/System/net/System/Net/HttpRequestHeader.cs
../referencesource/System/net/System/Net/HttpResponseHeader.cs
../referencesource/System/net/System/Net/HttpStatusCode.cs
-../referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
../referencesource/System/net/System/Net/HttpVersion.cs
../referencesource/System/net/System/Net/IAuthenticationModule.cs
../referencesource/System/net/System/Net/ICertificatePolicy.cs
../referencesource/System/net/System/Net/IPEndPoint.cs
../referencesource/System/net/System/Net/IPHostEntry.cs
../referencesource/System/net/System/Net/iwebproxy.cs
+../referencesource/System/net/System/Net/IWebProxyFinder.cs
../referencesource/System/net/System/Net/IWebRequestCreate.cs
../referencesource/System/net/System/Net/NetworkAccess.cs
../referencesource/System/net/System/Net/ProtocolViolationException.cs
../referencesource/System/net/System/Net/WebExceptionStatus.cs
../referencesource/System/net/System/Net/WebHeaderCollection.cs
../referencesource/System/net/System/Net/WebPermission.cs
+../referencesource/System/net/System/Net/webproxy.cs
../referencesource/System/net/System/Net/WebRequestMethods.cs
+../referencesource/System/net/System/Net/WebRequest.cs
../referencesource/System/net/System/Net/WebResponse.cs
../referencesource/System/net/System/Net/WebUtility.cs
../referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
+../referencesource/System/net/System/Net/Cache/RequestCache.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheEntry.cs
../referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheManager.cs
+
+../referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
../referencesource/System/net/System/Net/Sockets/IPProtectionLevel.cs
../referencesource/System/net/System/Net/Sockets/NetworkStream.cs
--- /dev/null
+Microsoft.CSharp/CodeGeneratorFromCompileUnitTest.cs
+Microsoft.CSharp/CodeGeneratorFromExpressionTest.cs
+Microsoft.CSharp/CodeGeneratorFromNamespaceTest.cs
+Microsoft.CSharp/CodeGeneratorFromStatementTest.cs
+Microsoft.CSharp/CodeGeneratorFromTypeTest.cs
+Microsoft.CSharp/CodeGeneratorIdentifierTest.cs
+Microsoft.CSharp/CodeGeneratorTestBase.cs
+Microsoft.CSharp/CodeGeneratorTypeOutputTest.cs
+Microsoft.CSharp/CSharpCodeProviderCas.cs
+Microsoft.CSharp/CSharpCodeProviderTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromBinaryOperatorTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromCompileUnitTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromExpressionTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromNamespaceTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromStatementTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromTypeTest.cs
+Microsoft.VisualBasic/CodeGeneratorTestBase.cs
+Microsoft.VisualBasic/VBCodeProviderCas.cs
+Microsoft.VisualBasic/VBCodeProviderTest.cs
+System.CodeDom/CodeArgumentReferenceExpressionCas.cs
+System.CodeDom/CodeArgumentReferenceExpressionTest.cs
+System.CodeDom/CodeArrayCreateExpressionCas.cs
+System.CodeDom/CodeArrayCreateExpressionTest.cs
+System.CodeDom/CodeArrayIndexerExpressionCas.cs
+System.CodeDom/CodeAssignStatementCas.cs
+System.CodeDom/CodeAttachEventStatementCas.cs
+System.CodeDom/CodeAttachEventStatementTest.cs
+System.CodeDom/CodeAttributeArgumentCas.cs
+System.CodeDom/CodeAttributeArgumentCollectionCas.cs
+System.CodeDom/CodeAttributeArgumentCollectionTest.cs
+System.CodeDom/CodeAttributeArgumentTest.cs
+System.CodeDom/CodeAttributeDeclarationCas.cs
+System.CodeDom/CodeAttributeDeclarationCollectionCas.cs
+System.CodeDom/CodeAttributeDeclarationCollectionTest.cs
+System.CodeDom/CodeAttributeDeclarationTest.cs
+System.CodeDom/CodeBaseReferenceExpressionCas.cs
+System.CodeDom/CodeBinaryOperatorExpressionCas.cs
+System.CodeDom/CodeCastExpressionCas.cs
+System.CodeDom/CodeCastExpressionTest.cs
+System.CodeDom/CodeCatchClauseCas.cs
+System.CodeDom/CodeCatchClauseCollectionCas.cs
+System.CodeDom/CodeCatchClauseCollectionTest.cs
+System.CodeDom/CodeCatchClauseTest.cs
+System.CodeDom/CodeChecksumPragmaCas.cs
+System.CodeDom/CodeChecksumPragmaTest.cs
+System.CodeDom/CodeCommentStatementCas.cs
+System.CodeDom/CodeCommentStatementCollectionCas.cs
+System.CodeDom/CodeCommentStatementCollectionTest.cs
+System.CodeDom/CodeCompileUnitCas.cs
+System.CodeDom/CodeConditionStatementCas.cs
+System.CodeDom/CodeConstructorCas.cs
+System.CodeDom/CodeConstructorTest.cs
+System.CodeDom/CodeDefaultValueExpressionCas.cs
+System.CodeDom/CodeDefaultValueExpressionTest.cs
+System.CodeDom/CodeDelegateCreateExpressionCas.cs
+System.CodeDom/CodeDelegateCreateExpressionTest.cs
+System.CodeDom/CodeDelegateInvokeExpressionCas.cs
+System.CodeDom/CodeDirectionExpressionCas.cs
+System.CodeDom/CodeDirectiveCas.cs
+System.CodeDom/CodeDirectiveCollectionCas.cs
+System.CodeDom/CodeDirectiveCollectionTest.cs
+System.CodeDom/CodeEntryPointMethodCas.cs
+System.CodeDom/CodeEventReferenceExpressionCas.cs
+System.CodeDom/CodeEventReferenceExpressionTest.cs
+System.CodeDom/CodeExpressionCas.cs
+System.CodeDom/CodeExpressionCollectionCas.cs
+System.CodeDom/CodeExpressionCollectionTest.cs
+System.CodeDom/CodeExpressionStatementCas.cs
+System.CodeDom/CodeFieldReferenceExpressionCas.cs
+System.CodeDom/CodeGotoStatementCas.cs
+System.CodeDom/CodeGotoStatementTest.cs
+System.CodeDom/CodeIndexerExpressionCas.cs
+System.CodeDom/CodeIterationStatementCas.cs
+System.CodeDom/CodeLabeledStatementTest.cs
+System.CodeDom/CodeLinePragmaCas.cs
+System.CodeDom/CodeLinePragmaTest.cs
+System.CodeDom/CodeMemberEventCas.cs
+System.CodeDom/CodeMemberFieldCas.cs
+System.CodeDom/CodeMemberFieldTest.cs
+System.CodeDom/CodeMemberMethodCas.cs
+System.CodeDom/CodeMemberMethodTest.cs
+System.CodeDom/CodeMemberPropertyCas.cs
+System.CodeDom/CodeMemberPropertyTest.cs
+System.CodeDom/CodeMethodInvokeExpressionCas.cs
+System.CodeDom/CodeMethodInvokeExpressionTest.cs
+System.CodeDom/CodeMethodReferenceExpressionCas.cs
+System.CodeDom/CodeMethodReferenceExpressionTest.cs
+System.CodeDom/CodeMethodReturnStatementCas.cs
+System.CodeDom/CodeNamespaceCas.cs
+System.CodeDom/CodeNamespaceCollectionCas.cs
+System.CodeDom/CodeNamespaceCollectionTest.cs
+System.CodeDom/CodeNamespaceImportCas.cs
+System.CodeDom/CodeNamespaceImportCollectionCas.cs
+System.CodeDom/CodeNamespaceImportCollectionTest.cs
+System.CodeDom/CodeNamespaceImportTest.cs
+System.CodeDom/CodeNamespaceTest.cs
+System.CodeDom/CodeObjectCas.cs
+System.CodeDom/CodeObjectCreateExpressionCas.cs
+System.CodeDom/CodeObjectCreateExpressionTest.cs
+System.CodeDom/CodeParameterDeclarationExpressionCas.cs
+System.CodeDom/CodeParameterDeclarationExpressionCollectionCas.cs
+System.CodeDom/CodeParameterDeclarationExpressionCollectionTest.cs
+System.CodeDom/CodeParameterDeclarationExpressionTest.cs
+System.CodeDom/CodePrimitiveExpressionCas.cs
+System.CodeDom/CodePropertyReferenceExpressionCas.cs
+System.CodeDom/CodePropertyReferenceExpressionTest.cs
+System.CodeDom/CodePropertySetValueReferenceExpressionCas.cs
+System.CodeDom/CodeRegionDirectiveCas.cs
+System.CodeDom/CodeRegionDirectiveTest.cs
+System.CodeDom/CodeRemoveEventStatementCas.cs
+System.CodeDom/CodeRemoveEventStatementTest.cs
+System.CodeDom/CodeSnippetCompileUnitCas.cs
+System.CodeDom/CodeSnippetCompileUnitTest.cs
+System.CodeDom/CodeSnippetExpressionCas.cs
+System.CodeDom/CodeSnippetExpressionTest.cs
+System.CodeDom/CodeSnippetStatementCas.cs
+System.CodeDom/CodeSnippetStatementTest.cs
+System.CodeDom/CodeSnippetTypeMemberCas.cs
+System.CodeDom/CodeSnippetTypeMemberTest.cs
+System.CodeDom/CodeStatementCas.cs
+System.CodeDom/CodeStatementCollectionCas.cs
+System.CodeDom/CodeStatementCollectionTest.cs
+System.CodeDom/CodeThisReferenceExpressionCas.cs
+System.CodeDom/CodeThrowExceptionStatementCas.cs
+System.CodeDom/CodeTryCatchFinallyStatementCas.cs
+System.CodeDom/CodeTypeConstructorCas.cs
+System.CodeDom/CodeTypeConstructorTest.cs
+System.CodeDom/CodeTypeDeclarationCas.cs
+System.CodeDom/CodeTypeDeclarationCollectionCas.cs
+System.CodeDom/CodeTypeDeclarationCollectionTest.cs
+System.CodeDom/CodeTypeDelegateCas.cs
+System.CodeDom/CodeTypeDelegateTest.cs
+System.CodeDom/CodeTypeMemberCas.cs
+System.CodeDom/CodeTypeMemberCollectionCas.cs
+System.CodeDom/CodeTypeMemberCollectionTest.cs
+System.CodeDom/CodeTypeOfExpressionCas.cs
+System.CodeDom/CodeTypeOfExpressionTest.cs
+System.CodeDom/CodeTypeParameterCas.cs
+System.CodeDom/CodeTypeParameterCollectionTest.cs
+System.CodeDom/CodeTypeParameterTest.cs
+System.CodeDom/CodeTypeReferenceCas.cs
+System.CodeDom/CodeTypeReferenceCollectionCas.cs
+System.CodeDom/CodeTypeReferenceCollectionTest.cs
+System.CodeDom/CodeTypeReferenceExpressionCas.cs
+System.CodeDom/CodeTypeReferenceExpressionTest.cs
+System.CodeDom/CodeTypeReferenceTest.cs
+System.CodeDom/CodeVariableDeclarationStatementCas.cs
+System.CodeDom/CodeVariableDeclarationStatementTest.cs
+System.CodeDom/CodeVariableReferenceExpressionCas.cs
+System.CodeDom/CodeVariableReferenceExpressionTest.cs
+System.CodeDom.Compiler/CodeCompilerCas.cs
+System.CodeDom.Compiler/CodeDomProviderCas.cs
+System.CodeDom.Compiler/CodeGeneratorCas.cs
+System.CodeDom.Compiler/CodeGeneratorFromTypeTestBase.cs
+System.CodeDom.Compiler/CodeGeneratorGenerateFromCompileUnitTest.cs
+System.CodeDom.Compiler/CodeGeneratorOptionsCas.cs
+System.CodeDom.Compiler/CodeGeneratorOptionsTest.cs
+System.CodeDom.Compiler/CodeGeneratorTest.cs
+System.CodeDom.Compiler/CodeGeneratorTestBase.cs
+System.CodeDom.Compiler/CodeParserCas.cs
+System.CodeDom.Compiler/CompilerErrorCas.cs
+System.CodeDom.Compiler/CompilerErrorCollectionCas.cs
+System.CodeDom.Compiler/CompilerInfoCas.cs
+System.CodeDom.Compiler/CompilerParametersCas.cs
+System.CodeDom.Compiler/CompilerResultsCas.cs
+System.CodeDom.Compiler/ExecutorCas.cs
+System.CodeDom.Compiler/ExecutorTest.cs
+System.CodeDom.Compiler/GeneratedCodeAttributeCas.cs
+System.CodeDom.Compiler/GeneratedCodeAttributeTest.cs
+System.CodeDom.Compiler/IndentedTextWriterCas.cs
+System.CodeDom.Compiler/IndentedTextWriterTest.cs
+System.CodeDom.Compiler/TempFileCollectionCas.cs
+System.CodeDom.Compiler/TempFileCollectionTest.cs
+System.Configuration/ApplicationSettingsBaseTest.cs
+System.Configuration/ConfigurationExceptionTest.cs
+System.Configuration/ConfigXmlDocumentTest.cs
+System.Configuration/LocalFileSettingsProviderTest.cs
+System.Configuration/SettingElementTest.cs
+System.Configuration/SettingsBaseTest.cs
+System.Configuration/SettingsPropertyCollectionTest.cs
+System.Configuration/SettingsPropertyTest.cs
+System.Configuration/SettingsPropertyValueCollectionTest.cs
+System.Configuration/SettingsPropertyValueTest.cs
+System.Configuration.Provider
+System.Configuration.Provider/ProviderBaseTest.cs
+System.IO.Ports/SerialPortTest.cs
+System.Web/AspNetHostingPermissionAttributeCas.cs
+System.Web/AspNetHostingPermissionAttributeTest.cs
+System.Web/AspNetHostingPermissionCas.cs
+System.Web/AspNetHostingPermissionTest.cs
+++ /dev/null
-Microsoft.CSharp/CodeGeneratorFromCompileUnitTest.cs
-Microsoft.CSharp/CodeGeneratorFromExpressionTest.cs
-Microsoft.CSharp/CodeGeneratorFromNamespaceTest.cs
-Microsoft.CSharp/CodeGeneratorFromStatementTest.cs
-Microsoft.CSharp/CodeGeneratorFromTypeTest.cs
-Microsoft.CSharp/CodeGeneratorIdentifierTest.cs
-Microsoft.CSharp/CodeGeneratorTestBase.cs
-Microsoft.CSharp/CodeGeneratorTypeOutputTest.cs
-Microsoft.CSharp/CSharpCodeProviderCas.cs
-Microsoft.CSharp/CSharpCodeProviderTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromBinaryOperatorTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromCompileUnitTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromExpressionTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromNamespaceTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromStatementTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromTypeTest.cs
-Microsoft.VisualBasic/CodeGeneratorTestBase.cs
-Microsoft.VisualBasic/VBCodeProviderCas.cs
-Microsoft.VisualBasic/VBCodeProviderTest.cs
-System.CodeDom/CodeArgumentReferenceExpressionCas.cs
-System.CodeDom/CodeArgumentReferenceExpressionTest.cs
-System.CodeDom/CodeArrayCreateExpressionCas.cs
-System.CodeDom/CodeArrayCreateExpressionTest.cs
-System.CodeDom/CodeArrayIndexerExpressionCas.cs
-System.CodeDom/CodeAssignStatementCas.cs
-System.CodeDom/CodeAttachEventStatementCas.cs
-System.CodeDom/CodeAttachEventStatementTest.cs
-System.CodeDom/CodeAttributeArgumentCas.cs
-System.CodeDom/CodeAttributeArgumentCollectionCas.cs
-System.CodeDom/CodeAttributeArgumentCollectionTest.cs
-System.CodeDom/CodeAttributeArgumentTest.cs
-System.CodeDom/CodeAttributeDeclarationCas.cs
-System.CodeDom/CodeAttributeDeclarationCollectionCas.cs
-System.CodeDom/CodeAttributeDeclarationCollectionTest.cs
-System.CodeDom/CodeAttributeDeclarationTest.cs
-System.CodeDom/CodeBaseReferenceExpressionCas.cs
-System.CodeDom/CodeBinaryOperatorExpressionCas.cs
-System.CodeDom/CodeCastExpressionCas.cs
-System.CodeDom/CodeCastExpressionTest.cs
-System.CodeDom/CodeCatchClauseCas.cs
-System.CodeDom/CodeCatchClauseCollectionCas.cs
-System.CodeDom/CodeCatchClauseCollectionTest.cs
-System.CodeDom/CodeCatchClauseTest.cs
-System.CodeDom/CodeChecksumPragmaCas.cs
-System.CodeDom/CodeChecksumPragmaTest.cs
-System.CodeDom/CodeCommentStatementCas.cs
-System.CodeDom/CodeCommentStatementCollectionCas.cs
-System.CodeDom/CodeCommentStatementCollectionTest.cs
-System.CodeDom/CodeCompileUnitCas.cs
-System.CodeDom/CodeConditionStatementCas.cs
-System.CodeDom/CodeConstructorCas.cs
-System.CodeDom/CodeConstructorTest.cs
-System.CodeDom/CodeDefaultValueExpressionCas.cs
-System.CodeDom/CodeDefaultValueExpressionTest.cs
-System.CodeDom/CodeDelegateCreateExpressionCas.cs
-System.CodeDom/CodeDelegateCreateExpressionTest.cs
-System.CodeDom/CodeDelegateInvokeExpressionCas.cs
-System.CodeDom/CodeDirectionExpressionCas.cs
-System.CodeDom/CodeDirectiveCas.cs
-System.CodeDom/CodeDirectiveCollectionCas.cs
-System.CodeDom/CodeDirectiveCollectionTest.cs
-System.CodeDom/CodeEntryPointMethodCas.cs
-System.CodeDom/CodeEventReferenceExpressionCas.cs
-System.CodeDom/CodeEventReferenceExpressionTest.cs
-System.CodeDom/CodeExpressionCas.cs
-System.CodeDom/CodeExpressionCollectionCas.cs
-System.CodeDom/CodeExpressionCollectionTest.cs
-System.CodeDom/CodeExpressionStatementCas.cs
-System.CodeDom/CodeFieldReferenceExpressionCas.cs
-System.CodeDom/CodeGotoStatementCas.cs
-System.CodeDom/CodeGotoStatementTest.cs
-System.CodeDom/CodeIndexerExpressionCas.cs
-System.CodeDom/CodeIterationStatementCas.cs
-System.CodeDom/CodeLabeledStatementTest.cs
-System.CodeDom/CodeLinePragmaCas.cs
-System.CodeDom/CodeLinePragmaTest.cs
-System.CodeDom/CodeMemberEventCas.cs
-System.CodeDom/CodeMemberFieldCas.cs
-System.CodeDom/CodeMemberFieldTest.cs
-System.CodeDom/CodeMemberMethodCas.cs
-System.CodeDom/CodeMemberMethodTest.cs
-System.CodeDom/CodeMemberPropertyCas.cs
-System.CodeDom/CodeMemberPropertyTest.cs
-System.CodeDom/CodeMethodInvokeExpressionCas.cs
-System.CodeDom/CodeMethodInvokeExpressionTest.cs
-System.CodeDom/CodeMethodReferenceExpressionCas.cs
-System.CodeDom/CodeMethodReferenceExpressionTest.cs
-System.CodeDom/CodeMethodReturnStatementCas.cs
-System.CodeDom/CodeNamespaceCas.cs
-System.CodeDom/CodeNamespaceCollectionCas.cs
-System.CodeDom/CodeNamespaceCollectionTest.cs
-System.CodeDom/CodeNamespaceImportCas.cs
-System.CodeDom/CodeNamespaceImportCollectionCas.cs
-System.CodeDom/CodeNamespaceImportCollectionTest.cs
-System.CodeDom/CodeNamespaceImportTest.cs
-System.CodeDom/CodeNamespaceTest.cs
-System.CodeDom/CodeObjectCas.cs
-System.CodeDom/CodeObjectCreateExpressionCas.cs
-System.CodeDom/CodeObjectCreateExpressionTest.cs
-System.CodeDom/CodeParameterDeclarationExpressionCas.cs
-System.CodeDom/CodeParameterDeclarationExpressionCollectionCas.cs
-System.CodeDom/CodeParameterDeclarationExpressionCollectionTest.cs
-System.CodeDom/CodeParameterDeclarationExpressionTest.cs
-System.CodeDom/CodePrimitiveExpressionCas.cs
-System.CodeDom/CodePropertyReferenceExpressionCas.cs
-System.CodeDom/CodePropertyReferenceExpressionTest.cs
-System.CodeDom/CodePropertySetValueReferenceExpressionCas.cs
-System.CodeDom/CodeRegionDirectiveCas.cs
-System.CodeDom/CodeRegionDirectiveTest.cs
-System.CodeDom/CodeRemoveEventStatementCas.cs
-System.CodeDom/CodeRemoveEventStatementTest.cs
-System.CodeDom/CodeSnippetCompileUnitCas.cs
-System.CodeDom/CodeSnippetCompileUnitTest.cs
-System.CodeDom/CodeSnippetExpressionCas.cs
-System.CodeDom/CodeSnippetExpressionTest.cs
-System.CodeDom/CodeSnippetStatementCas.cs
-System.CodeDom/CodeSnippetStatementTest.cs
-System.CodeDom/CodeSnippetTypeMemberCas.cs
-System.CodeDom/CodeSnippetTypeMemberTest.cs
-System.CodeDom/CodeStatementCas.cs
-System.CodeDom/CodeStatementCollectionCas.cs
-System.CodeDom/CodeStatementCollectionTest.cs
-System.CodeDom/CodeThisReferenceExpressionCas.cs
-System.CodeDom/CodeThrowExceptionStatementCas.cs
-System.CodeDom/CodeTryCatchFinallyStatementCas.cs
-System.CodeDom/CodeTypeConstructorCas.cs
-System.CodeDom/CodeTypeConstructorTest.cs
-System.CodeDom/CodeTypeDeclarationCas.cs
-System.CodeDom/CodeTypeDeclarationCollectionCas.cs
-System.CodeDom/CodeTypeDeclarationCollectionTest.cs
-System.CodeDom/CodeTypeDelegateCas.cs
-System.CodeDom/CodeTypeDelegateTest.cs
-System.CodeDom/CodeTypeMemberCas.cs
-System.CodeDom/CodeTypeMemberCollectionCas.cs
-System.CodeDom/CodeTypeMemberCollectionTest.cs
-System.CodeDom/CodeTypeOfExpressionCas.cs
-System.CodeDom/CodeTypeOfExpressionTest.cs
-System.CodeDom/CodeTypeParameterCas.cs
-System.CodeDom/CodeTypeParameterCollectionTest.cs
-System.CodeDom/CodeTypeParameterTest.cs
-System.CodeDom/CodeTypeReferenceCas.cs
-System.CodeDom/CodeTypeReferenceCollectionCas.cs
-System.CodeDom/CodeTypeReferenceCollectionTest.cs
-System.CodeDom/CodeTypeReferenceExpressionCas.cs
-System.CodeDom/CodeTypeReferenceExpressionTest.cs
-System.CodeDom/CodeTypeReferenceTest.cs
-System.CodeDom/CodeVariableDeclarationStatementCas.cs
-System.CodeDom/CodeVariableDeclarationStatementTest.cs
-System.CodeDom/CodeVariableReferenceExpressionCas.cs
-System.CodeDom/CodeVariableReferenceExpressionTest.cs
-System.CodeDom.Compiler/CodeCompilerCas.cs
-System.CodeDom.Compiler/CodeDomProviderCas.cs
-System.CodeDom.Compiler/CodeGeneratorCas.cs
-System.CodeDom.Compiler/CodeGeneratorFromTypeTestBase.cs
-System.CodeDom.Compiler/CodeGeneratorGenerateFromCompileUnitTest.cs
-System.CodeDom.Compiler/CodeGeneratorOptionsCas.cs
-System.CodeDom.Compiler/CodeGeneratorOptionsTest.cs
-System.CodeDom.Compiler/CodeGeneratorTest.cs
-System.CodeDom.Compiler/CodeGeneratorTestBase.cs
-System.CodeDom.Compiler/CodeParserCas.cs
-System.CodeDom.Compiler/CompilerErrorCas.cs
-System.CodeDom.Compiler/CompilerErrorCollectionCas.cs
-System.CodeDom.Compiler/CompilerInfoCas.cs
-System.CodeDom.Compiler/CompilerParametersCas.cs
-System.CodeDom.Compiler/CompilerResultsCas.cs
-System.CodeDom.Compiler/ExecutorCas.cs
-System.CodeDom.Compiler/ExecutorTest.cs
-System.CodeDom.Compiler/GeneratedCodeAttributeCas.cs
-System.CodeDom.Compiler/GeneratedCodeAttributeTest.cs
-System.CodeDom.Compiler/IndentedTextWriterCas.cs
-System.CodeDom.Compiler/IndentedTextWriterTest.cs
-System.CodeDom.Compiler/TempFileCollectionCas.cs
-System.CodeDom.Compiler/TempFileCollectionTest.cs
-System.Configuration/ApplicationSettingsBaseTest.cs
-System.Configuration/ConfigurationExceptionTest.cs
-System.Configuration/ConfigXmlDocumentTest.cs
-System.Configuration/LocalFileSettingsProviderTest.cs
-System.Configuration/SettingElementTest.cs
-System.Configuration/SettingsBaseTest.cs
-System.Configuration/SettingsPropertyCollectionTest.cs
-System.Configuration/SettingsPropertyTest.cs
-System.Configuration/SettingsPropertyValueCollectionTest.cs
-System.Configuration/SettingsPropertyValueTest.cs
-System.Configuration.Provider
-System.Configuration.Provider/ProviderBaseTest.cs
-System.IO.Ports/SerialPortTest.cs
-System.Web/AspNetHostingPermissionAttributeCas.cs
-System.Web/AspNetHostingPermissionAttributeTest.cs
-System.Web/AspNetHostingPermissionCas.cs
-System.Web/AspNetHostingPermissionTest.cs
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
using (var archive = new ZipArchive(stream))\r
{ \r
foreach (var entry in archive.Entries)\r
- Assert.AreEqual (entry.LastWriteTime.Year, DateTime.Now.Year);\r
+ {\r
+ Assert.AreEqual (DateTime.Now.Year, entry.LastWriteTime.Year);\r
+ Assert.AreEqual (DateTime.Now.Month, entry.LastWriteTime.Month);\r
+ Assert.AreEqual (DateTime.Now.Day, entry.LastWriteTime.Day);\r
+ }\r
}\r
} \r
}\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
minute = (uint) time.Minute;
hour = (uint) time.Hour;
day = (uint) time.Day;
- month = (uint) time.Month;
+ month = (uint) time.Month - 1;
year = (uint) time.Year;
}
public DateTime Date
{
- get { return new DateTime ((int) year, (int) month, (int) day, (int) hour, (int) minute, (int) second); }
+ get { return new DateTime ((int) year, (int) month + 1, (int) day, (int) hour, (int) minute, (int) second); }
}
}
}
namespace System
{
+ // Contains information about the type which is expensive to compute
+ [StructLayout (LayoutKind.Sequential)]
+ internal class MonoTypeInfo {
+ // this is the displayed form: special characters
+ // ,+*&*[]\ in the identifier portions of the names
+ // have been escaped with a leading backslash (\)
+ public string full_name;
+ public MonoCMethod default_ctor;
+ }
+
+ [StructLayout (LayoutKind.Sequential)]
partial class RuntimeType
{
+ [NonSerialized]
+ MonoTypeInfo type_info;
+
internal Object GenericCache;
- internal virtual MonoCMethod GetDefaultConstructor ()
+ internal RuntimeType (Object obj)
+ {
+ throw new NotImplementedException ();
+ }
+
+ internal MonoCMethod GetDefaultConstructor ()
+ {
+ MonoCMethod ctor = null;
+
+ if (type_info == null)
+ type_info = new MonoTypeInfo ();
+ else
+ ctor = type_info.default_ctor;
+
+ if (ctor == null) {
+ var ctors = GetConstructors (BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
+
+ for (int i = 0; i < ctors.Length; ++i) {
+ if (ctors [i].GetParametersCount () == 0) {
+ type_info.default_ctor = ctor = (MonoCMethod) ctors [i];
+ break;
+ }
+ }
+ }
+
+ return ctor;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ extern MethodInfo GetCorrespondingInflatedMethod (MethodInfo generic);
+
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ extern ConstructorInfo GetCorrespondingInflatedConstructor (ConstructorInfo generic);
+
+ internal override MethodInfo GetMethod (MethodInfo fromNoninstanciated)
+ {
+ if (fromNoninstanciated == null)
+ throw new ArgumentNullException ("fromNoninstanciated");
+ return GetCorrespondingInflatedMethod (fromNoninstanciated);
+ }
+
+ internal override ConstructorInfo GetConstructor (ConstructorInfo fromNoninstanciated)
{
- // TODO: Requires MonoType
- throw new NotSupportedException ();
+ if (fromNoninstanciated == null)
+ throw new ArgumentNullException ("fromNoninstanciated");
+ return GetCorrespondingInflatedConstructor (fromNoninstanciated);
+ }
+
+ internal override FieldInfo GetField (FieldInfo fromNoninstanciated)
+ {
+ /* create sensible flags from given FieldInfo */
+ BindingFlags flags = fromNoninstanciated.IsStatic ? BindingFlags.Static : BindingFlags.Instance;
+ flags |= fromNoninstanciated.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
+ return GetField (fromNoninstanciated.Name, flags);
}
string GetDefaultMemberName ()
get;
}
- public override string FullName {
- get {
- throw new NotImplementedException ();
- }
- }
-
public extern override string Name {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
get;
get { return get_core_clr_security_level () == 1; }
}
#endif
+
+ public override int GetHashCode()
+ {
+ Type t = UnderlyingSystemType;
+ if (t != null && t != this)
+ return t.GetHashCode ();
+ return (int)_impl.Value;
+ }
+
+ public override string FullName {
+ get {
+ string fullName;
+ // This doesn't need locking
+ if (type_info == null)
+ type_info = new MonoTypeInfo ();
+ if ((fullName = type_info.full_name) == null)
+ fullName = type_info.full_name = getFullName (true, false);
+
+ return fullName;
+ }
+ }
+
+ internal override bool IsUserType {
+ get {
+ return false;
+ }
+ }
}
}
foreach (Type type in methodInstantiation) {
if (type == null)
throw new ArgumentNullException ();
- if (!(type is MonoType))
+ if (!(type is RuntimeType))
hasUserType = true;
}
+++ /dev/null
-//
-// System.Runtime.InteropServices.ArrayWithOffset.cs
-//
-// Author:
-// Miguel de Icaza (miguel@ximian.com)
-//
-// (C) Novell, Inc. http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-
-namespace System.Runtime.InteropServices {
-
- [Serializable]
- [ComVisible (true)]
- public struct ArrayWithOffset {
- object array;
- int offset;
-
- public ArrayWithOffset (object array, int offset)
- {
- this.array = array;
- this.offset = offset;
- }
-
- public override bool Equals (object obj)
- {
- if (obj == null)
- return false;
- if (!(obj is ArrayWithOffset))
- return false;
- ArrayWithOffset other = (ArrayWithOffset) obj;
-
- return (other.array == array && other.offset == offset);
- }
-
- public bool Equals (ArrayWithOffset obj)
- {
- return obj.array == array && obj.offset == offset;
- }
-
- public static bool operator == (ArrayWithOffset a, ArrayWithOffset b)
- {
- return a.Equals (b);
- }
-
- public static bool operator != (ArrayWithOffset a, ArrayWithOffset b)
- {
- return !a.Equals (b);
- }
-
- public override int GetHashCode ()
- {
- return offset;
- }
-
- public object GetArray ()
- {
- return array;
- }
-
- public int GetOffset ()
- {
- return offset;
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.AssemblyRegistrationFlags.cs
-//
-// Author:
-// Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Runtime.InteropServices
-{
- [Flags]
- [ComVisible(true)]
- public enum AssemblyRegistrationFlags {
- None = 0,
- SetCodeBase,
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.BStrWrapper
-//
-// Author:
-// Kazuki Oikawa (kazuki@panicode.com)
-//
-
-using System;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- [ComVisible (true)]
- public sealed class BStrWrapper
- {
- string _value;
-
- public BStrWrapper (string value)
- {
- _value = value;
- }
-
- public BStrWrapper (object value)
- {
- _value = (string)value;
- }
-
- public string WrappedObject { get { return _value; } }
- }
-}
+++ /dev/null
-//
-// COMException.cs - COM Exception
-//
-// Author:
-// Sebastien Pouliot <sebastien@ximian.com>
-//
-// (C) 2002 Motus Technologies Inc. (http://www.motus.com)
-// Copyright (C) 2004, 2008 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices {
-
-[Serializable]
-[ComVisible (true)]
-public class COMException : ExternalException {
-
- public COMException ()
- : base () {}
-
- public COMException (string message)
- : base (message) {}
-
- public COMException (string message, Exception inner)
- : base (message, inner) {}
-
- public COMException (string message, int errorCode)
- : base (message, errorCode) {}
-
- protected COMException (SerializationInfo info, StreamingContext context)
- : base (info, context) {}
-
- public override string ToString ()
- {
- return String.Format (
- "{0} (0x{1:x}): {2} {3}{4}{5}",
- GetType (), HResult, Message, InnerException == null ? String.Empty : InnerException.ToString (),
- Environment.NewLine, StackTrace != null ? StackTrace : String.Empty);
- }
-}
-
-}
+++ /dev/null
-// CallingConvention.cs
-//
-// This code was automatically generated from
-// ECMA CLI XML Library Specification.
-// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
-// Created: Fri, 7 Sep 2001 16:33:29 UTC
-// Source file: AllTypes.xml
-// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml
-//
-// (C) 2001 Ximian, Inc. http://www.ximian.com
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-
-namespace System.Runtime.InteropServices {
-
- [Serializable]
- [ComVisible (true)]
- public enum CallingConvention {
- Winapi = 1,
- Cdecl = 2,
- StdCall = 3,
- ThisCall = 4,
- FastCall = 5,
- }
-
-} // System.Runtime.InteropServices
+++ /dev/null
-// CharSet.cs
-//
-// This code was automatically generated from
-// ECMA CLI XML Library Specification.
-// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
-// Created: Fri, 7 Sep 2001 16:33:35 UTC
-// Source file: AllTypes.xml
-// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml
-//
-// (C) 2001 Ximian, Inc. http://www.ximian.com
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-
-namespace System.Runtime.InteropServices {
-
- [Serializable]
- [ComVisible (true)]
- public enum CharSet {
- None = 1,
- Ansi = 2,
- Unicode = 3,
- Auto = 4,
- }
-
-} // System.Runtime.InteropServices
+++ /dev/null
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-// System.Runtime.InteropServices/ComMemberType.cs
-//
-// Paolo Molaro (lupus@ximian.com)
-//
-// (C) 2002 Ximian, Inc.
-
-using System;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- [ComVisible (true)]
- public enum ComMemberType {
- Method = 0,
- PropGet = 1,
- PropSet = 2
- }
-}
-
+++ /dev/null
-//
-// System.Runtime.InteropServices.CriticalHandle
-//
-// Author:
-// Kazuki Oikawa (kazuki@panicode.com)
-//
-
-
-using System;
-using System.Runtime.ConstrainedExecution;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- public abstract class CriticalHandle : CriticalFinalizerObject, IDisposable
- {
- protected IntPtr handle;
- bool _disposed = false;
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
- protected CriticalHandle (IntPtr invalidHandleValue)
- {
- handle = invalidHandleValue;
- }
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- ~CriticalHandle ()
- {
- Dispose (false);
- }
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- public void Close ()
- {
- Dispose (true);
- }
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- public void Dispose ()
- {
- Dispose (true);
- }
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- protected virtual void Dispose (bool disposing)
- {
- if (_disposed)
- return;
-
- if (!IsInvalid){
- if (!_disposed && !ReleaseHandle ()) {
- GC.SuppressFinalize (this);
- } else {
- // Failed in release...
- }
- }
- _disposed = true;
- }
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- protected abstract bool ReleaseHandle ();
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- protected void SetHandle (IntPtr handle)
- {
- this.handle = handle;
- }
-
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- public void SetHandleAsInvalid()
- {
- _disposed = true;
- }
-
- public bool IsClosed {
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- get { return _disposed; }
- }
-
- public abstract bool IsInvalid {
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- get;
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.CurrencyWrapper.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- [ComVisible (true)]
- public sealed class CurrencyWrapper
- {
- Decimal currency;
-
- public CurrencyWrapper (decimal obj)
- {
- currency = obj;
- }
-
- public CurrencyWrapper (object obj)
- {
- if (obj.GetType() != typeof(Decimal))
- throw new ArgumentException ("obj has to be a Decimal type");
- currency = (Decimal)obj;
- }
-
- public decimal WrappedObject {
- get { return currency; }
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.DispatchWrapper.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if !FULL_AOT_RUNTIME
-using System;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- [ComVisible (true)]
- public sealed class DispatchWrapper
- {
- object wrappedObject;
-
- public DispatchWrapper (object obj)
- {
- Marshal.GetIDispatchForObject (obj);
- wrappedObject = obj;
- }
-
- public object WrappedObject {
- get { return wrappedObject; }
- }
- }
-}
-#endif
+++ /dev/null
-//
-// System.Runtime.InteropServices.ErrorWrapper.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if !FULL_AOT_RUNTIME
-using System;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- [ComVisible (true)]
- public sealed class ErrorWrapper
- {
- int errorCode;
-
- public ErrorWrapper (Exception e)
- {
- this.errorCode = Marshal.GetHRForException (e);
- }
-
- public ErrorWrapper (int errorCode)
- {
- this.errorCode = errorCode;
- }
-
- public ErrorWrapper (object errorCode)
- {
- if (errorCode.GetType() != typeof(int))
- throw new ArgumentException ("errorCode has to be an int type");
- this.errorCode = (int)errorCode;
- }
-
- public int ErrorCode {
- get { return errorCode; }
- }
- }
-}
-#endif
+++ /dev/null
-//
-// System.Runtime.InteropServices.ExternalException.cs
-//
-// Author:
-// Miguel De Icaza (miguel@ximian.com)
-//
-// (C) 2001 Ximian, Inc. http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.Serialization;
-using System.Globalization;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- [ComVisible (true)]
- public class ExternalException : SystemException
- {
- public ExternalException ()
- : base (Locale.GetText ("External exception"))
- {
- HResult = -2147467259;
- }
-
- public ExternalException (string message)
- : base (message)
- {
- HResult = -2147467259;
- }
-
- protected ExternalException(SerializationInfo info, StreamingContext context)
- : base (info, context) {
- }
-
- public ExternalException (string message, Exception inner)
- : base (message, inner)
- {
- HResult = -2147467259;
- }
-
- public ExternalException (string message, int errorCode)
- : base (message)
- {
- HResult = errorCode;
- }
-
- public virtual int ErrorCode {
- get {
- return HResult;
- }
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.HandleRef
-//
-// Author:
-// Tim Coleman (tim@timcoleman.com)
-//
-// Copyright (C) 2003 Tim Coleman
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace System.Runtime.InteropServices {
- [ComVisible (true)]
- public struct HandleRef {
-
- #region Fields
-
- object wrapper;
- IntPtr handle;
-
- #endregion // Fields
-
- #region Constructors
-
- public HandleRef (object wrapper, IntPtr handle)
- {
- this.wrapper = wrapper;
- this.handle = handle;
- }
-
- #endregion // Constructors
-
- #region Properties
-
- public IntPtr Handle {
- get { return handle; }
- }
-
- public object Wrapper {
- get { return wrapper; }
- }
-
- #endregion // Properties
-
- #region Type Conversions
-
- public static explicit operator IntPtr (HandleRef value)
- {
- return value.Handle;
- }
-
- #endregion // Type Conversions
- public static IntPtr ToIntPtr(HandleRef value)
- {
- return value.Handle;
- // Why did MS add a function for this?
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.ICustomAdapter.cs
-//
-// Author:
-// Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Runtime.InteropServices {
-
- [ComVisible (true)]
- public interface ICustomAdapter {
- [return: MarshalAs (UnmanagedType.IUnknown)]
- object GetUnderlyingObject ();
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.ICustomFactory.cs
-//
-// Author:
-// Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Runtime.InteropServices {
-
- [ComVisible (true)]
- public interface ICustomFactory {
- MarshalByRefObject CreateInstance (Type serverType);
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.ICustomMarshaler.cs
-//
-// Author:
-// Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Runtime.InteropServices {
-
- [ComVisible (true)]
- public interface ICustomMarshaler {
- void CleanUpManagedData (object ManagedObj);
- void CleanUpNativeData (IntPtr pNativeData);
- int GetNativeDataSize ();
- IntPtr MarshalManagedToNative (object ManagedObj);
- object MarshalNativeToManaged (IntPtr pNativeData);
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.IRegistrationServices.cs
-//
-// Author:
-// Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Reflection;
-using System.Security.Permissions;
-namespace System.Runtime.InteropServices {
-
- [ComVisible(true)]
- [Guid("CCBD682C-73A5-4568-B8B0-C7007E11ABA2")]
- public interface IRegistrationServices {
- Guid GetManagedCategoryGuid ();
- [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
- string GetProgIdForType (Type type);
-
- [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
- Type[] GetRegistrableTypesInAssembly (Assembly assembly);
-
- [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
- bool RegisterAssembly (Assembly assembly, AssemblyRegistrationFlags flags);
-
- [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
- void RegisterTypeForComClients (Type type, ref Guid g);
-
- bool TypeRepresentsComType (Type type);
-
- [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
- bool TypeRequiresRegistration (Type type);
-
- [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
- bool UnregisterAssembly (Assembly assembly);
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.InvalidComObjectException.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- [ComVisible(true)]
- [Serializable]
- public class InvalidComObjectException : SystemException
- {
- private const int ErrorCode = -2146233049; // = 0x80131527
-
- public InvalidComObjectException ()
- : base (Locale.GetText ("Invalid COM object is used"))
- {
- this.HResult = ErrorCode;
- }
-
- public InvalidComObjectException (string message)
- : base (message)
- {
- this.HResult = ErrorCode;
- }
-
- public InvalidComObjectException (string message, Exception inner)
- : base (message, inner)
- {
- this.HResult = ErrorCode;
- }
-
- protected InvalidComObjectException (SerializationInfo info, StreamingContext context)
- : base (info, context)
- {
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.InvalidOleVariantTypeException.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- [ComVisible(true)]
- [Serializable]
- public class InvalidOleVariantTypeException : SystemException
- {
- private const int ErrorCode = -2146233039; // = 0x80131531
-
- public InvalidOleVariantTypeException ()
- : base (Locale.GetText ("Found native variant type cannot be marshalled to managed code"))
- {
- this.HResult = ErrorCode;
- }
-
- public InvalidOleVariantTypeException (string message)
- : base (message)
- {
- this.HResult = ErrorCode;
- }
-
- public InvalidOleVariantTypeException (string message, Exception inner)
- : base (message, inner)
- {
- this.HResult = ErrorCode;
- }
-
- protected InvalidOleVariantTypeException (SerializationInfo info, StreamingContext context)
- : base (info, context)
- {
- }
- }
-}
+++ /dev/null
-// LayoutKind.cs
-//
-// This code was automatically generated from
-// ECMA CLI XML Library Specification.
-// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
-// Created: Fri, 7 Sep 2001 16:33:48 UTC
-// Source file: AllTypes.xml
-// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml
-//
-// (C) 2001 Ximian, Inc. http://www.ximian.com
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-namespace System.Runtime.InteropServices {
-
- [ComVisible(true)]
- [Serializable]
- public enum LayoutKind {
- Sequential = 0,
- Explicit = 2,
- Auto = 3
- }
-
-}
return GetFunctionPointerForDelegateInternal ((Delegate)(object)d);
}
+
+ internal static void SetLastWin32Error (int error)
+ {
+ }
}
}
+++ /dev/null
-//
-// System.Runtime.InteropServices.MarshalDirectiveException.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- [ComVisible(true)]
- [Serializable]
- public class MarshalDirectiveException : SystemException
- {
- private const int ErrorCode = -2146233035; // = 0x80131535
-
- public MarshalDirectiveException ()
- : base (Locale.GetText ("Unsupported MarshalAsAttribute found"))
- {
- this.HResult = ErrorCode;
- }
-
- public MarshalDirectiveException (string message)
- : base (message)
- {
- this.HResult = ErrorCode;
- }
-
- public MarshalDirectiveException (string message, Exception inner)
- : base (message, inner)
- {
- this.HResult = ErrorCode;
- }
-
- protected MarshalDirectiveException (SerializationInfo info, StreamingContext context)
- : base (info, context)
- {
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.ObjectCreationDelegate.cs
-//
-// Author:
-// Miguel de Icaza (miguel@ximian.com)
-//
-// (C) Novell, Inc. http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-
-namespace System.Runtime.InteropServices {
-
- [ComVisible(true)]
- public delegate IntPtr ObjectCreationDelegate (IntPtr aggregator);
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.SEHException.cs
-//
-// Authors:
-// Gonzalo Paniagua Javier <gonzalo@ximian.com>
-//
-// (c) 2003 Ximian, Inc. http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- [ComVisible(true)]
- [Serializable]
- public class SEHException : ExternalException
- {
- public SEHException ()
- {
- }
-
- public SEHException (string message)
- : base (message)
- {
- }
-
- public SEHException (string message, Exception inner)
- : base (message, inner)
- {
- }
-
- protected SEHException (SerializationInfo info, StreamingContext context)
- : base (info, context)
- {
- }
-
- public virtual bool CanResume ()
- {
- return false;
- }
- }
-}
-
+++ /dev/null
-//
-// System.Runtime.InteropServices.SafeArrayRankMismatchException.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- [ComVisible(true)]
- [Serializable]
- public class SafeArrayRankMismatchException : SystemException
- {
- private const int ErrorCode = -2146233032; // = 0x80131538
-
- public SafeArrayRankMismatchException ()
- : base (Locale.GetText ("The incoming SAVEARRAY does not match the rank of the expected managed signature"))
- {
- this.HResult = ErrorCode;
- }
-
- public SafeArrayRankMismatchException (string message)
- : base (message)
- {
- this.HResult = ErrorCode;
- }
-
- public SafeArrayRankMismatchException (string message, Exception inner)
- : base (message, inner)
- {
- this.HResult = ErrorCode;
- }
-
- protected SafeArrayRankMismatchException (SerializationInfo info, StreamingContext context)
- : base (info, context)
- {
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.SafeArrayTypeMismatchException.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
- [ComVisible(true)]
- [Serializable]
- public class SafeArrayTypeMismatchException : SystemException
- {
- private const int ErrorCode = -2146233037; // = 0x80131533
-
- public SafeArrayTypeMismatchException ()
- : base (Locale.GetText ("The incoming SAVEARRAY does not match the expected managed signature"))
- {
- this.HResult = ErrorCode;
- }
-
- public SafeArrayTypeMismatchException (string message)
- : base (message)
- {
- this.HResult = ErrorCode;
- }
-
- public SafeArrayTypeMismatchException (string message, Exception inner)
- : base (message, inner)
- {
- this.HResult = ErrorCode;
- }
-
- protected SafeArrayTypeMismatchException (SerializationInfo info, StreamingContext context)
- : base (info, context)
- {
- }
- }
-}
ReleaseHandle ();
}
}
-
- /*
- * Implement this abstract method in your derived class to specify how to
- * free the handle. Be careful not write any code that's subject to faults
- * in this method (the runtime will prepare the infrastructure for you so
- * that no jit allocations etc. will occur, but don't allocate memory unless
- * you can deal with the failure and still free the handle).
- * The boolean returned should be true for success and false if the runtime
- * should fire a SafeHandleCriticalFailure MDA (CustomerDebugProbe) if that
- * MDA is enabled.
- */
- [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
- protected abstract bool ReleaseHandle ();
}
}
+++ /dev/null
-//
-// System.Runtime.InteropServices.UnknownWrapper.cs
-//
-// Author:
-// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Runtime.InteropServices
-{
- [Serializable, ComVisible(true)]
- public sealed class UnknownWrapper
- {
- private object InternalObject;
-
- public UnknownWrapper (object obj)
- {
- InternalObject = obj;
- }
-
- public object WrappedObject {
- get { return InternalObject; }
- }
- }
-}
+++ /dev/null
-//
-// System.Runtime.InteropServices.VariantWrapper.cs
-//
-// Author:
-// Gert Driesen (drieseng@users.sourceforge.net)
-//
-// (C) Novell, Inc. http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace System.Runtime.InteropServices
-{
- [Serializable]
- public sealed class VariantWrapper
- {
- private object _wrappedObject;
-
- public VariantWrapper (object obj)
- {
- _wrappedObject = obj;
- }
-
- public object WrappedObject
- {
- get
- {
- return _wrappedObject;
- }
- }
- }
-}
public static bool IsMethodOverloaded(IMethodMessage msg)
{
const BindingFlags bfinst = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance;
- MonoType type = (MonoType) msg.MethodBase.DeclaringType;
+ RuntimeType type = (RuntimeType) msg.MethodBase.DeclaringType;
return type.GetMethodsByName (msg.MethodName, bfinst, false, type).Length > 1;
}
* of icalls, do not require an increment.
*/
#pragma warning disable 169
- private const int mono_corlib_version = 147;
+ private const int mono_corlib_version = 148;
#pragma warning restore 169
[ComVisible (true)]
[ThreadStatic]
static Dictionary<Type, AttributeUsageAttribute> usage_cache;
- /* Treat as user types all corlib types extending System.Type that are not MonoType and TypeBuilder */
+ /* Treat as user types all corlib types extending System.Type that are not RuntimeType and TypeBuilder */
static bool IsUserCattrProvider (object obj)
{
Type type = obj as Type;
#if !FULL_AOT_RUNTIME
- if ((type is MonoType) || (type is TypeBuilder))
+ if ((type is RuntimeType) || (type is TypeBuilder))
#else
- if (type is MonoType)
+ if (type is RuntimeType)
#endif
return false;
if ((obj is Type))
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System.Collections.Generic;
-using System.Globalization;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security;
-using System.Diagnostics.Contracts;
-using System.Threading;
-using System.Diagnostics;
-using System.Security.Permissions;
-using System.Runtime.Remoting.Activation;
-using System.Runtime;
-
namespace System
{
- // Contains information about the type which is expensive to compute
- [StructLayout (LayoutKind.Sequential)]
- internal class MonoTypeInfo {
- // this is the displayed form: special characters
- // ,+*&*[]\ in the identifier portions of the names
- // have been escaped with a leading backslash (\)
- public string full_name;
- public MonoCMethod default_ctor;
- }
-
- [Serializable]
- [StructLayout (LayoutKind.Sequential)]
- class MonoType : RuntimeType, ISerializable
+ // Dummy type kept because lots of external code uses
+ // this to check whenever it is running on mono.
+ sealed class MonoType : RuntimeType
{
- [NonSerialized]
- MonoTypeInfo type_info;
-
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern void type_from_obj (MonoType type, Object obj);
-
- internal MonoType (Object obj)
- {
- // this should not be used - lupus
- type_from_obj (this, obj);
-
- throw new NotImplementedException ();
- }
-
- internal override MonoCMethod GetDefaultConstructor ()
+ private MonoType ()
{
- MonoCMethod ctor = null;
-
- if (type_info == null)
- type_info = new MonoTypeInfo ();
- else
- ctor = type_info.default_ctor;
-
- if (ctor == null) {
- var ctors = GetConstructors (BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
-
- for (int i = 0; i < ctors.Length; ++i) {
- if (ctors [i].GetParametersCount () == 0) {
- type_info.default_ctor = ctor = (MonoCMethod) ctors [i];
- break;
- }
- }
- }
-
- return ctor;
- }
-
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- extern MethodInfo GetCorrespondingInflatedMethod (MethodInfo generic);
-
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- extern ConstructorInfo GetCorrespondingInflatedConstructor (ConstructorInfo generic);
-
- internal override MethodInfo GetMethod (MethodInfo fromNoninstanciated)
- {
- if (fromNoninstanciated == null)
- throw new ArgumentNullException ("fromNoninstanciated");
- return GetCorrespondingInflatedMethod (fromNoninstanciated);
- }
-
- internal override ConstructorInfo GetConstructor (ConstructorInfo fromNoninstanciated)
- {
- if (fromNoninstanciated == null)
- throw new ArgumentNullException ("fromNoninstanciated");
- return GetCorrespondingInflatedConstructor (fromNoninstanciated);
- }
-
- internal override FieldInfo GetField (FieldInfo fromNoninstanciated)
- {
- /* create sensible flags from given FieldInfo */
- BindingFlags flags = fromNoninstanciated.IsStatic ? BindingFlags.Static : BindingFlags.Instance;
- flags |= fromNoninstanciated.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
- return GetField (fromNoninstanciated.Name, flags);
- }
-
- public override int GetHashCode()
- {
- Type t = UnderlyingSystemType;
- if (t != null && t != this)
- return t.GetHashCode ();
- return (int)_impl.Value;
- }
-
- public override string FullName {
- get {
- string fullName;
- // This doesn't need locking
- if (type_info == null)
- type_info = new MonoTypeInfo ();
- if ((fullName = type_info.full_name) == null)
- fullName = type_info.full_name = getFullName (true, false);
-
- return fullName;
- }
- }
-
- internal override bool IsUserType {
- get {
- return false;
- }
}
}
}
if (info == null)
throw new ArgumentNullException ("info");
- MonoType mt = ((MonoType) info.GetValue ("TypeObj", typeof (MonoType)));
+ RuntimeType mt = ((RuntimeType) info.GetValue ("TypeObj", typeof (RuntimeType)));
value = mt.TypeHandle.Value;
if (value == IntPtr.Zero)
throw new SerializationException (Locale.GetText ("Insufficient state."));
if (value == IntPtr.Zero)
throw new SerializationException ("Object fields may not be properly initialized");
- info.AddValue ("TypeObj", Type.GetTypeHandle (this), typeof (MonoType));
+ info.AddValue ("TypeObj", Type.GetTypeHandle (this), typeof (RuntimeType));
}
[ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
}
// check a class in mscorlib to determine if we're running on Mono
- if (Type.GetType ("System.MonoType", false) != null)
+ if (Type.GetType ("Mono.Runtime", false) != null)
is_mono = true;
}
<Compile Include="..\referencesource\mscorlib\system\runtime\exceptionservices\corruptingexceptioncommon.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\exceptionservices\exceptionnotification.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\exceptionservices\exceptionservicescommon.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\arraywithoffset.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\attributes.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\bstrwrapper.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\callingconvention.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\charset.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\comexception.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\commembertype.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ibindctx.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iconnectionpoint.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iconnectionpointcontainer.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypeinfo2.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypelib.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypelib2.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\criticalhandle.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\currencywrapper.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\dispatchwrapper.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\errorwrapper.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\expando\iexpando.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\externalexception.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\handleref.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustomadapter.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustomfactory.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustommarshaler.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustomqueryinterface.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\invalidcomobjectexception.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\invalidolevarianttypeexception.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\iregistrationservices.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\layoutkind.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\marshaldirectiveexception.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\objectcreationdelegate.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\runtimeenvironment.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\safearrayrankmismatchexception.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\safearraytypemismatchexception.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\safehandle.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\sehexception.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ucomienumconnections.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\unknownwrapper.cs" />\r
+ <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\variantWrapper.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\NgenServicingAttributes.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\remoting\callcontext.cs" />\r
<Compile Include="..\referencesource\mscorlib\system\runtime\serialization\deserializationeventhandler.cs" />\r
<Compile Include="System.Runtime.InteropServices\_Thread.cs" />\r
<Compile Include="System.Runtime.InteropServices\_Type.cs" />\r
<Compile Include="System.Runtime.InteropServices\_TypeBuilder.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ArrayWithOffset.cs" />\r
- <Compile Include="System.Runtime.InteropServices\AssemblyRegistrationFlags.cs" />\r
<Compile Include="System.Runtime.InteropServices\BIND_OPTS.cs" />\r
<Compile Include="System.Runtime.InteropServices\BINDPTR.cs" />\r
- <Compile Include="System.Runtime.InteropServices\BStrWrapper.cs" />\r
<Compile Include="System.Runtime.InteropServices\CALLCONV.cs" />\r
- <Compile Include="System.Runtime.InteropServices\CallingConvention.cs" />\r
- <Compile Include="System.Runtime.InteropServices\CharSet.cs" />\r
- <Compile Include="System.Runtime.InteropServices\COMException.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ComMemberType.cs" />\r
- <Compile Include="System.Runtime.InteropServices\CriticalHandle.cs" />\r
- <Compile Include="System.Runtime.InteropServices\CurrencyWrapper.cs" />\r
<Compile Include="System.Runtime.InteropServices\DESCKIND.cs" />\r
- <Compile Include="System.Runtime.InteropServices\DispatchWrapper.cs" />\r
<Compile Include="System.Runtime.InteropServices\DISPPARAMS.cs" />\r
<Compile Include="System.Runtime.InteropServices\ELEMDESC.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ErrorWrapper.cs" />\r
<Compile Include="System.Runtime.InteropServices\EXCEPINFO.cs" />\r
<Compile Include="System.Runtime.InteropServices\ExporterEventKind.cs" />\r
<Compile Include="System.Runtime.InteropServices\ExtensibleClassFactory.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ExternalException.cs" />\r
<Compile Include="System.Runtime.InteropServices\FILETIME.cs" />\r
<Compile Include="System.Runtime.InteropServices\FUNCDESC.cs" />\r
<Compile Include="System.Runtime.InteropServices\FUNCFLAGS.cs" />\r
<Compile Include="System.Runtime.InteropServices\FUNCKIND.cs" />\r
<Compile Include="System.Runtime.InteropServices\GCHandle.cs" />\r
<Compile Include="System.Runtime.InteropServices\GCHandleType.cs" />\r
- <Compile Include="System.Runtime.InteropServices\HandleRef.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ICustomAdapter.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ICustomFactory.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ICustomMarshaler.cs" />\r
<Compile Include="System.Runtime.InteropServices\IDLDESC.cs" />\r
<Compile Include="System.Runtime.InteropServices\IDLFLAG.cs" />\r
<Compile Include="System.Runtime.InteropServices\IErrorInfo.cs" />\r
<Compile Include="System.Runtime.InteropServices\IMPLTYPEFLAGS.cs" />\r
<Compile Include="System.Runtime.InteropServices\ImporterEventKind.cs" />\r
- <Compile Include="System.Runtime.InteropServices\InvalidComObjectException.cs" />\r
- <Compile Include="System.Runtime.InteropServices\InvalidOleVariantTypeException.cs" />\r
<Compile Include="System.Runtime.InteropServices\INVOKEKIND.cs" />\r
- <Compile Include="System.Runtime.InteropServices\IRegistrationServices.cs" />\r
<Compile Include="System.Runtime.InteropServices\ITypeLibConverter.cs" />\r
<Compile Include="System.Runtime.InteropServices\ITypeLibExporterNameProvider.cs" />\r
<Compile Include="System.Runtime.InteropServices\ITypeLibExporterNotifySink.cs" />\r
<Compile Include="System.Runtime.InteropServices\ITypeLibImporterNotifySink.cs" />\r
- <Compile Include="System.Runtime.InteropServices\LayoutKind.cs" />\r
<Compile Include="System.Runtime.InteropServices\LIBFLAGS.cs" />\r
<Compile Include="System.Runtime.InteropServices\ManagedErrorInfo.cs" />\r
<Compile Include="System.Runtime.InteropServices\Marshal.cs" />\r
<Compile Include="System.Runtime.InteropServices\MarshalAsAttribute.cs" />\r
- <Compile Include="System.Runtime.InteropServices\MarshalDirectiveException.cs" />\r
- <Compile Include="System.Runtime.InteropServices\ObjectCreationDelegate.cs" />\r
<Compile Include="System.Runtime.InteropServices\PARAMDESC.cs" />\r
<Compile Include="System.Runtime.InteropServices\PARAMFLAG.cs" />\r
<Compile Include="System.Runtime.InteropServices\RegistrationClassContext.cs" />\r
<Compile Include="System.Runtime.InteropServices\RegistrationConnectionType.cs" />\r
<Compile Include="System.Runtime.InteropServices\RegistrationServices.cs" />\r
- <Compile Include="System.Runtime.InteropServices\SafeArrayRankMismatchException.cs" />\r
- <Compile Include="System.Runtime.InteropServices\SafeArrayTypeMismatchException.cs" />\r
<Compile Include="System.Runtime.InteropServices\SafeBuffer.cs" />\r
<Compile Include="System.Runtime.InteropServices\SafeHandle.cs" />\r
- <Compile Include="System.Runtime.InteropServices\SEHException.cs" />\r
<Compile Include="System.Runtime.InteropServices\STATSTG.cs" />\r
<Compile Include="System.Runtime.InteropServices\SYSKIND.cs" />\r
<Compile Include="System.Runtime.InteropServices\TYPEATTR.cs" />\r
<Compile Include="System.Runtime.InteropServices\UCOMITypeComp.cs" />\r
<Compile Include="System.Runtime.InteropServices\UCOMITypeInfo.cs" />\r
<Compile Include="System.Runtime.InteropServices\UCOMITypeLib.cs" />\r
- <Compile Include="System.Runtime.InteropServices\UnknownWrapper.cs" />\r
<Compile Include="System.Runtime.InteropServices\VARDESC.cs" />\r
<Compile Include="System.Runtime.InteropServices\VARFLAGS.cs" />\r
- <Compile Include="System.Runtime.InteropServices\VariantWrapper.cs" />\r
<Compile Include="System.Runtime.Remoting.Activation\ActivationServices.cs" />\r
<Compile Include="System.Runtime.Remoting.Activation\ActivatorLevel.cs" />\r
<Compile Include="System.Runtime.Remoting.Activation\AppDomainLevelActivator.cs" />\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
System.Runtime.InteropServices/_Thread.cs
System.Runtime.InteropServices/_Type.cs
System.Runtime.InteropServices/_TypeBuilder.cs
-System.Runtime.InteropServices/ArrayWithOffset.cs
-System.Runtime.InteropServices/AssemblyRegistrationFlags.cs
System.Runtime.InteropServices/BIND_OPTS.cs
System.Runtime.InteropServices/BINDPTR.cs
-System.Runtime.InteropServices/BStrWrapper.cs
System.Runtime.InteropServices/CALLCONV.cs
-System.Runtime.InteropServices/CallingConvention.cs
-System.Runtime.InteropServices/CharSet.cs
-System.Runtime.InteropServices/COMException.cs
-System.Runtime.InteropServices/ComMemberType.cs
-System.Runtime.InteropServices/CriticalHandle.cs
-System.Runtime.InteropServices/CurrencyWrapper.cs
System.Runtime.InteropServices/DESCKIND.cs
-System.Runtime.InteropServices/DispatchWrapper.cs
System.Runtime.InteropServices/DISPPARAMS.cs
System.Runtime.InteropServices/ELEMDESC.cs
-System.Runtime.InteropServices/ErrorWrapper.cs
System.Runtime.InteropServices/EXCEPINFO.cs
System.Runtime.InteropServices/ExporterEventKind.cs
System.Runtime.InteropServices/ExtensibleClassFactory.cs
-System.Runtime.InteropServices/ExternalException.cs
System.Runtime.InteropServices/FILETIME.cs
System.Runtime.InteropServices/FUNCDESC.cs
System.Runtime.InteropServices/FUNCFLAGS.cs
System.Runtime.InteropServices/FUNCKIND.cs
System.Runtime.InteropServices/GCHandle.cs
System.Runtime.InteropServices/GCHandleType.cs
-System.Runtime.InteropServices/HandleRef.cs
-System.Runtime.InteropServices/ICustomAdapter.cs
-System.Runtime.InteropServices/ICustomFactory.cs
-System.Runtime.InteropServices/ICustomMarshaler.cs
System.Runtime.InteropServices/IDLDESC.cs
System.Runtime.InteropServices/IDLFLAG.cs
System.Runtime.InteropServices/IErrorInfo.cs
System.Runtime.InteropServices/IMPLTYPEFLAGS.cs
System.Runtime.InteropServices/INVOKEKIND.cs
-System.Runtime.InteropServices/IRegistrationServices.cs
System.Runtime.InteropServices/ITypeLibConverter.cs
System.Runtime.InteropServices/ITypeLibExporterNameProvider.cs
System.Runtime.InteropServices/ITypeLibExporterNotifySink.cs
System.Runtime.InteropServices/ITypeLibImporterNotifySink.cs
System.Runtime.InteropServices/ImporterEventKind.cs
-System.Runtime.InteropServices/InvalidComObjectException.cs
-System.Runtime.InteropServices/InvalidOleVariantTypeException.cs
System.Runtime.InteropServices/LIBFLAGS.cs
-System.Runtime.InteropServices/LayoutKind.cs
System.Runtime.InteropServices/ManagedErrorInfo.cs
System.Runtime.InteropServices/Marshal.cs
System.Runtime.InteropServices/MarshalAsAttribute.cs
-System.Runtime.InteropServices/MarshalDirectiveException.cs
-System.Runtime.InteropServices/ObjectCreationDelegate.cs
System.Runtime.InteropServices/PARAMDESC.cs
System.Runtime.InteropServices/PARAMFLAG.cs
System.Runtime.InteropServices/RegistrationClassContext.cs
System.Runtime.InteropServices/RegistrationConnectionType.cs
-System.Runtime.InteropServices/SEHException.cs
System.Runtime.InteropServices/STATSTG.cs
System.Runtime.InteropServices/RegistrationServices.cs
-System.Runtime.InteropServices/SafeArrayRankMismatchException.cs
-System.Runtime.InteropServices/SafeArrayTypeMismatchException.cs
System.Runtime.InteropServices/SafeBuffer.cs
System.Runtime.InteropServices/SafeHandle.cs
System.Runtime.InteropServices/SYSKIND.cs
System.Runtime.InteropServices/UCOMITypeComp.cs
System.Runtime.InteropServices/UCOMITypeInfo.cs
System.Runtime.InteropServices/UCOMITypeLib.cs
-System.Runtime.InteropServices/UnknownWrapper.cs
System.Runtime.InteropServices/VARDESC.cs
System.Runtime.InteropServices/VARFLAGS.cs
-System.Runtime.InteropServices/VariantWrapper.cs
System.Runtime.InteropServices.WindowsRuntime/DefaultInterfaceAttribute.cs
System.Runtime.InteropServices.WindowsRuntime/DesignerNamespaceResolveEventArgs.cs
../referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs
../referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs
+../referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs
../referencesource/mscorlib/system/runtime/interopservices/attributes.cs
+../referencesource/mscorlib/system/runtime/interopservices/bstrwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/callingconvention.cs
+../referencesource/mscorlib/system/runtime/interopservices/charset.cs
+../referencesource/mscorlib/system/runtime/interopservices/comexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/commembertype.cs
+../referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs
+../referencesource/mscorlib/system/runtime/interopservices/currencywrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/errorwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/externalexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/handleref.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustomadapter.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustomfactory.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustommarshaler.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustomqueryinterface.cs
+../referencesource/mscorlib/system/runtime/interopservices/invalidcomobjectexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/invalidolevarianttypeexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/iregistrationservices.cs
+../referencesource/mscorlib/system/runtime/interopservices/layoutkind.cs
+../referencesource/mscorlib/system/runtime/interopservices/marshaldirectiveexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/objectcreationdelegate.cs
../referencesource/mscorlib/system/runtime/interopservices/runtimeenvironment.cs
+../referencesource/mscorlib/system/runtime/interopservices/safearrayrankmismatchexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/safearraytypemismatchexception.cs
../referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
+../referencesource/mscorlib/system/runtime/interopservices/sehexception.cs
../referencesource/mscorlib/system/runtime/interopservices/ucomienumconnections.cs
+../referencesource/mscorlib/system/runtime/interopservices/unknownwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/variantWrapper.cs
../referencesource/mscorlib/system/runtime/interopservices/ComTypes/ibindctx.cs
../referencesource/mscorlib/system/runtime/interopservices/ComTypes/iconnectionpoint.cs
+++ /dev/null
-System/Object.cs
-System/ValueType.cs
-System/Enum.cs
-System/Delegate.cs
-System/MulticastDelegate.cs
-System.Runtime.CompilerServices/RuntimeHelpers.cs
-System/Decimal.cs
-System/DecimalFormatter.cs
--- /dev/null
+Microsoft.Win32/RegistryKeyTest.cs
+System.Diagnostics.Contracts/ContractAssertTest.cs
+System.Diagnostics.Contracts/ContractAssumeTest.cs
+System.Diagnostics.Contracts/ContractCollectionMethodsTest.cs
+System.Diagnostics.Contracts/ContractHelperTest.cs
+System.Diagnostics.Contracts/ContractMarkerMethodsTest.cs
+System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
+System.Diagnostics.Contracts/Helpers/RunAgainstReferenceAttribute.cs
+System.Diagnostics.Contracts/Helpers/TestContractBase.cs
+System.Reflection.Emit/AssemblyBuilderAccessTest.cs
+System.Reflection.Emit/AssemblyBuilderTest.cs
+System.Reflection.Emit/ConstructorBuilderTest.cs
+System.Reflection.Emit/ConstructorOnTypeBuilderInstTest.cs
+System.Reflection.Emit/CustomAttributeBuilderTest.cs
+System.Reflection.Emit/DerivedTypesTest.cs
+System.Reflection.Emit/DynamicILInfoTest.cs
+System.Reflection.Emit/DynamicMethodTest.cs
+System.Reflection.Emit/EnumBuilderTest.cs
+System.Reflection.Emit/EventBuilderTest.cs
+System.Reflection.Emit/FieldBuilderTest.cs
+System.Reflection.Emit/GenericTypeParameterBuilderTest.cs
+System.Reflection.Emit/ILGeneratorTest.cs
+System.Reflection.Emit/MethodBuilderTest.cs
+System.Reflection.Emit/MethodBuilderTestIL.cs
+System.Reflection.Emit/MethodOnTypeBuilderInstTest.cs
+System.Reflection.Emit/MethodRentalCas.cs
+System.Reflection.Emit/MethodRentalTest.cs
+System.Reflection.Emit/ModuleBuilderTest.cs
+System.Reflection.Emit/ParameterBuilderTest.cs
+System.Reflection.Emit/PropertyBuilderTest.cs
+System.Reflection.Emit/SignatureHelperTest.cs
+System.Reflection.Emit/TypeBuilderTest.cs
+System.Runtime.Remoting/ContextTest.cs
+System.Runtime.Remoting/RemotingConfigurationTest.cs
+System.Runtime.Remoting/RemotingServicesTest.cs
+System.Runtime.Remoting/SoapServicesTest.cs
+System.Runtime.Remoting/SynchronizationAttributeTest.cs
+System.Runtime.Remoting.Channels/ChannelServicesTest.cs
+System.Runtime.Remoting.Contexts/SynchronizationAttributeTest.cs
+System.Runtime.Remoting.Messaging/CallContextTest.cs
+System.Runtime.Remoting.Metadata.W3cXsd2001/SoapHexBinaryTest.cs
+System.Security.AccessControl/AuthorizationRuleTest.cs
+System.Security.AccessControl/CommonAceTest.cs
+System.Security.AccessControl/CommonAclTest.cs
+System.Security.AccessControl/CommonObjectSecurityTest.cs
+System.Security.AccessControl/CommonSecurityDescriptorTest.cs
+System.Security.AccessControl/CryptoKeyAccessRuleTest.cs
+System.Security.AccessControl/DirectoryObjectSecurityTest.cs
+System.Security.AccessControl/DirectorySecurityTest.cs
+System.Security.AccessControl/DiscretionaryAclTest.cs
+System.Security.AccessControl/EventWaitHandleSecurityTest.cs
+System.Security.AccessControl/FileSecurityTest.cs
+System.Security.AccessControl/MutexAccessRuleTest.cs
+System.Security.AccessControl/MutexSecurityTest.cs
+System.Security.AccessControl/ObjectAceTest.cs
+System.Security.AccessControl/ObjectSecurity_TTest.cs
+System.Security.AccessControl/ObjectSecurityTest.cs
+System.Security.AccessControl/RawAclTest.cs
+System.Security.AccessControl/RawSecurityDescriptorTest.cs
+System.Security.AccessControl/RegistrySecurityTest.cs
+System.Security.AccessControl/SystemAclTest.cs
+System.Security.Permissions/CodeAccessSecurityAttributeTest.cs
+System.Security.Permissions/EnvironmentPermissionAttributeTest.cs
+System.Security.Permissions/EnvironmentPermissionTest.cs
+System.Security.Permissions/FileDialogPermissionAttributeTest.cs
+System.Security.Permissions/FileDialogPermissionTest.cs
+System.Security.Permissions/FileIOPermissionAttributeTest.cs
+System.Security.Permissions/FileIOPermissionTest.cs
+System.Security.Permissions/GacIdentityPermissionAttributeTest.cs
+System.Security.Permissions/GacIdentityPermissionTest.cs
+System.Security.Permissions/HostProtectionAttributeTest.cs
+System.Security.Permissions/IBuiltInPermissionTest.cs
+System.Security.Permissions/IsolatedStorageFilePermissionAttributeTest.cs
+System.Security.Permissions/IsolatedStorageFilePermissionTest.cs
+System.Security.Permissions/IsolatedStoragePermissionAttributeTest.cs
+System.Security.Permissions/KeyContainerPermissionAttributeTest.cs
+System.Security.Permissions/PermissionSetAttributeTest.cs
+System.Security.Permissions/PrincipalPermissionAttributeTest.cs
+System.Security.Permissions/PrincipalPermissionTest.cs
+System.Security.Permissions/PublisherIdentityPermissionAttributeTest.cs
+System.Security.Permissions/PublisherIdentityPermissionTest.cs
+System.Security.Permissions/ReflectionPermissionAttributeTest.cs
+System.Security.Permissions/ReflectionPermissionTest.cs
+System.Security.Permissions/RegistryPermissionAttributeTest.cs
+System.Security.Permissions/RegistryPermissionTest.cs
+System.Security.Permissions/SecurityAttributeTest.cs
+System.Security.Permissions/SecurityPermissionAttributeTest.cs
+System.Security.Permissions/SecurityPermissionTest.cs
+System.Security.Permissions/SiteIdentityPermissionAttributeTest.cs
+System.Security.Permissions/SiteIdentityPermissionTest.cs
+System.Security.Permissions/StrongNameIdentityPermissionAttributeTest.cs
+System.Security.Permissions/StrongNameIdentityPermissionTest.cs
+System.Security.Permissions/StrongNamePublicKeyBlobTest.cs
+System.Security.Permissions/UIPermissionAttributeTest.cs
+System.Security.Permissions/UIPermissionTest.cs
+System.Security.Permissions/UrlIdentityPermissionAttributeTest.cs
+System.Security.Permissions/UrlIdentityPermissionTest.cs
+System.Security.Permissions/ZoneIdentityPermissionAttributeTest.cs
+System.Security.Permissions/ZoneIdentityPermissionTest.cs
+System.Security.Policy/AllMembershipConditionTest.cs
+System.Security.Policy/ApplicationDirectoryMembershipConditionTest.cs
+System.Security.Policy/ApplicationDirectoryTest.cs
+System.Security.Policy/ApplicationMembershipConditionTest.cs
+System.Security.Policy/ApplicationSecurityManagerCas.cs
+System.Security.Policy/ApplicationSecurityManagerTest.cs
+System.Security.Policy/ApplicationTrustTest.cs
+System.Security.Policy/CodeGroupTest.cs
+System.Security.Policy/DomainApplicationMembershipConditionTest.cs
+System.Security.Policy/EvidenceTest.cs
+System.Security.Policy/FileCodeGroupTest.cs
+System.Security.Policy/FirstMatchCodeGroupTest.cs
+System.Security.Policy/GacMembershipConditionTest.cs
+System.Security.Policy/GacTest.cs
+System.Security.Policy/HashMembershipConditionTest.cs
+System.Security.Policy/HashTest.cs
+System.Security.Policy/IBuiltInEvidenceTest.cs
+System.Security.Policy/NetCodeGroupTest.cs
+System.Security.Policy/PermissionRequestEvidenceTest.cs
+System.Security.Policy/PolicyLevelTest.cs
+System.Security.Policy/PolicyStatementTest.cs
+System.Security.Policy/PublisherMembershipConditionTest.cs
+System.Security.Policy/PublisherTest.cs
+System.Security.Policy/SiteMembershipConditionTest.cs
+System.Security.Policy/SiteTest.cs
+System.Security.Policy/StrongNameMembershipConditionTest.cs
+System.Security.Policy/StrongNameTest.cs
+System.Security.Policy/UnionCodeGroupTest.cs
+System.Security.Policy/UrlMembershipConditionTest.cs
+System.Security.Policy/UrlTest.cs
+System.Security.Policy/ZoneMembershipConditionTest.cs
+System.Security.Policy/ZoneTest.cs
+++ /dev/null
-Microsoft.Win32/RegistryKeyTest.cs
-System.Diagnostics.Contracts/ContractAssertTest.cs
-System.Diagnostics.Contracts/ContractAssumeTest.cs
-System.Diagnostics.Contracts/ContractCollectionMethodsTest.cs
-System.Diagnostics.Contracts/ContractHelperTest.cs
-System.Diagnostics.Contracts/ContractMarkerMethodsTest.cs
-System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
-System.Diagnostics.Contracts/Helpers/RunAgainstReferenceAttribute.cs
-System.Diagnostics.Contracts/Helpers/TestContractBase.cs
-System.Reflection.Emit/AssemblyBuilderAccessTest.cs
-System.Reflection.Emit/AssemblyBuilderTest.cs
-System.Reflection.Emit/ConstructorBuilderTest.cs
-System.Reflection.Emit/ConstructorOnTypeBuilderInstTest.cs
-System.Reflection.Emit/CustomAttributeBuilderTest.cs
-System.Reflection.Emit/DerivedTypesTest.cs
-System.Reflection.Emit/DynamicILInfoTest.cs
-System.Reflection.Emit/DynamicMethodTest.cs
-System.Reflection.Emit/EnumBuilderTest.cs
-System.Reflection.Emit/EventBuilderTest.cs
-System.Reflection.Emit/FieldBuilderTest.cs
-System.Reflection.Emit/GenericTypeParameterBuilderTest.cs
-System.Reflection.Emit/ILGeneratorTest.cs
-System.Reflection.Emit/MethodBuilderTest.cs
-System.Reflection.Emit/MethodBuilderTestIL.cs
-System.Reflection.Emit/MethodOnTypeBuilderInstTest.cs
-System.Reflection.Emit/MethodRentalCas.cs
-System.Reflection.Emit/MethodRentalTest.cs
-System.Reflection.Emit/ModuleBuilderTest.cs
-System.Reflection.Emit/ParameterBuilderTest.cs
-System.Reflection.Emit/PropertyBuilderTest.cs
-System.Reflection.Emit/SignatureHelperTest.cs
-System.Reflection.Emit/TypeBuilderTest.cs
-System.Runtime.Remoting/ContextTest.cs
-System.Runtime.Remoting/RemotingConfigurationTest.cs
-System.Runtime.Remoting/RemotingServicesTest.cs
-System.Runtime.Remoting/SoapServicesTest.cs
-System.Runtime.Remoting/SynchronizationAttributeTest.cs
-System.Runtime.Remoting.Channels/ChannelServicesTest.cs
-System.Runtime.Remoting.Contexts/SynchronizationAttributeTest.cs
-System.Runtime.Remoting.Messaging/CallContextTest.cs
-System.Runtime.Remoting.Metadata.W3cXsd2001/SoapHexBinaryTest.cs
-System.Security.AccessControl/AuthorizationRuleTest.cs
-System.Security.AccessControl/CommonAceTest.cs
-System.Security.AccessControl/CommonAclTest.cs
-System.Security.AccessControl/CommonObjectSecurityTest.cs
-System.Security.AccessControl/CommonSecurityDescriptorTest.cs
-System.Security.AccessControl/CryptoKeyAccessRuleTest.cs
-System.Security.AccessControl/DirectoryObjectSecurityTest.cs
-System.Security.AccessControl/DirectorySecurityTest.cs
-System.Security.AccessControl/DiscretionaryAclTest.cs
-System.Security.AccessControl/EventWaitHandleSecurityTest.cs
-System.Security.AccessControl/FileSecurityTest.cs
-System.Security.AccessControl/MutexAccessRuleTest.cs
-System.Security.AccessControl/MutexSecurityTest.cs
-System.Security.AccessControl/ObjectAceTest.cs
-System.Security.AccessControl/ObjectSecurity_TTest.cs
-System.Security.AccessControl/ObjectSecurityTest.cs
-System.Security.AccessControl/RawAclTest.cs
-System.Security.AccessControl/RawSecurityDescriptorTest.cs
-System.Security.AccessControl/RegistrySecurityTest.cs
-System.Security.AccessControl/SystemAclTest.cs
-System.Security.Permissions/CodeAccessSecurityAttributeTest.cs
-System.Security.Permissions/EnvironmentPermissionAttributeTest.cs
-System.Security.Permissions/EnvironmentPermissionTest.cs
-System.Security.Permissions/FileDialogPermissionAttributeTest.cs
-System.Security.Permissions/FileDialogPermissionTest.cs
-System.Security.Permissions/FileIOPermissionAttributeTest.cs
-System.Security.Permissions/FileIOPermissionTest.cs
-System.Security.Permissions/GacIdentityPermissionAttributeTest.cs
-System.Security.Permissions/GacIdentityPermissionTest.cs
-System.Security.Permissions/HostProtectionAttributeTest.cs
-System.Security.Permissions/IBuiltInPermissionTest.cs
-System.Security.Permissions/IsolatedStorageFilePermissionAttributeTest.cs
-System.Security.Permissions/IsolatedStorageFilePermissionTest.cs
-System.Security.Permissions/IsolatedStoragePermissionAttributeTest.cs
-System.Security.Permissions/KeyContainerPermissionAttributeTest.cs
-System.Security.Permissions/PermissionSetAttributeTest.cs
-System.Security.Permissions/PrincipalPermissionAttributeTest.cs
-System.Security.Permissions/PrincipalPermissionTest.cs
-System.Security.Permissions/PublisherIdentityPermissionAttributeTest.cs
-System.Security.Permissions/PublisherIdentityPermissionTest.cs
-System.Security.Permissions/ReflectionPermissionAttributeTest.cs
-System.Security.Permissions/ReflectionPermissionTest.cs
-System.Security.Permissions/RegistryPermissionAttributeTest.cs
-System.Security.Permissions/RegistryPermissionTest.cs
-System.Security.Permissions/SecurityAttributeTest.cs
-System.Security.Permissions/SecurityPermissionAttributeTest.cs
-System.Security.Permissions/SecurityPermissionTest.cs
-System.Security.Permissions/SiteIdentityPermissionAttributeTest.cs
-System.Security.Permissions/SiteIdentityPermissionTest.cs
-System.Security.Permissions/StrongNameIdentityPermissionAttributeTest.cs
-System.Security.Permissions/StrongNameIdentityPermissionTest.cs
-System.Security.Permissions/StrongNamePublicKeyBlobTest.cs
-System.Security.Permissions/UIPermissionAttributeTest.cs
-System.Security.Permissions/UIPermissionTest.cs
-System.Security.Permissions/UrlIdentityPermissionAttributeTest.cs
-System.Security.Permissions/UrlIdentityPermissionTest.cs
-System.Security.Permissions/ZoneIdentityPermissionAttributeTest.cs
-System.Security.Permissions/ZoneIdentityPermissionTest.cs
-System.Security.Policy/AllMembershipConditionTest.cs
-System.Security.Policy/ApplicationDirectoryMembershipConditionTest.cs
-System.Security.Policy/ApplicationDirectoryTest.cs
-System.Security.Policy/ApplicationMembershipConditionTest.cs
-System.Security.Policy/ApplicationSecurityManagerCas.cs
-System.Security.Policy/ApplicationSecurityManagerTest.cs
-System.Security.Policy/ApplicationTrustTest.cs
-System.Security.Policy/CodeGroupTest.cs
-System.Security.Policy/DomainApplicationMembershipConditionTest.cs
-System.Security.Policy/EvidenceTest.cs
-System.Security.Policy/FileCodeGroupTest.cs
-System.Security.Policy/FirstMatchCodeGroupTest.cs
-System.Security.Policy/GacMembershipConditionTest.cs
-System.Security.Policy/GacTest.cs
-System.Security.Policy/HashMembershipConditionTest.cs
-System.Security.Policy/HashTest.cs
-System.Security.Policy/IBuiltInEvidenceTest.cs
-System.Security.Policy/NetCodeGroupTest.cs
-System.Security.Policy/PermissionRequestEvidenceTest.cs
-System.Security.Policy/PolicyLevelTest.cs
-System.Security.Policy/PolicyStatementTest.cs
-System.Security.Policy/PublisherMembershipConditionTest.cs
-System.Security.Policy/PublisherTest.cs
-System.Security.Policy/SiteMembershipConditionTest.cs
-System.Security.Policy/SiteTest.cs
-System.Security.Policy/StrongNameMembershipConditionTest.cs
-System.Security.Policy/StrongNameTest.cs
-System.Security.Policy/UnionCodeGroupTest.cs
-System.Security.Policy/UrlMembershipConditionTest.cs
-System.Security.Policy/UrlTest.cs
-System.Security.Policy/ZoneMembershipConditionTest.cs
-System.Security.Policy/ZoneTest.cs
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
{
if (s_CacheConfigSettings == null)
{
+#if MONO
+ var settings = new RequestCachingSectionInternal();
+#else
RequestCachingSectionInternal settings = RequestCachingSectionInternal.GetSection();
s_DefaultGlobalBinding = new RequestCacheBinding (settings.DefaultCache, settings.DefaultHttpValidator, settings.DefaultCachePolicy);
s_DefaultHttpBinding = new RequestCacheBinding (settings.DefaultCache, settings.DefaultHttpValidator, settings.DefaultHttpCachePolicy);
s_DefaultFtpBinding = new RequestCacheBinding (settings.DefaultCache, settings.DefaultFtpValidator, settings.DefaultFtpCachePolicy);
+#endif
s_CacheConfigSettings = settings;
}
}
}
+#if MONO
+ class RequestCacheValidator
+ {
+ public object CreateValidator ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ class RequestCachingSectionInternal
+ {
+ // TODO: Implement
+ public readonly bool DisableAllCaching = true;
+ }
+#endif
+
//
//
internal class RequestCacheBinding {
using System.Security.Principal;
using System.ComponentModel;
-
+#if !MONO
public sealed class DefaultProxySection : ConfigurationSection
{
public DefaultProxySection()
base.Reset(defaultElement);
}
}
-
+#endif
internal sealed class DefaultProxySectionInternal
{
+#if !MONO
[SecurityPermission(SecurityAction.Assert, Flags=SecurityPermissionFlag.ControlPrincipal)]
internal DefaultProxySectionInternal(DefaultProxySection section)
{
this.webProxy.Credentials = SystemNetworkCredential.defaultCredential;
}
}
+#else
+
+ static IWebProxy GetDefaultProxy_UsingOldMonoCode()
+ {
+#if CONFIGURATION_DEP
+ DefaultProxySection sec = ConfigurationManager.GetSection ("system.net/defaultProxy") as DefaultProxySection;
+ WebProxy p;
+
+ if (sec == null)
+ return GetSystemWebProxy ();
+
+ ProxyElement pe = sec.Proxy;
+
+ if ((pe.UseSystemDefault != ProxyElement.UseSystemDefaultValues.False) && (pe.ProxyAddress == null)) {
+ IWebProxy proxy = GetSystemWebProxy ();
+
+ if (!(proxy is WebProxy))
+ return proxy;
+
+ p = (WebProxy) proxy;
+ } else
+ p = new WebProxy ();
+
+ if (pe.ProxyAddress != null)
+ p.Address = pe.ProxyAddress;
+
+ if (pe.BypassOnLocal != ProxyElement.BypassOnLocalValues.Unspecified)
+ p.BypassProxyOnLocal = (pe.BypassOnLocal == ProxyElement.BypassOnLocalValues.True);
+
+ foreach(BypassElement elem in sec.BypassList)
+ p.BypassArrayList.Add(elem.Address);
+
+ return p;
+#else
+ return GetSystemWebProxy ();
+#endif
+ }
+
+ static IWebProxy GetSystemWebProxy()
+ {
+ return System.Net.WebProxy.CreateDefaultProxy ();
+ }
+
+#endif
internal static object ClassSyncObject
{
{
lock (DefaultProxySectionInternal.ClassSyncObject)
{
+#if MONO
+ var res = new DefaultProxySectionInternal();
+ res.webProxy = GetDefaultProxy_UsingOldMonoCode ();
+ return res;
+#else
DefaultProxySection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.DefaultProxySectionPath) as DefaultProxySection;
if (section == null)
return null;
throw new ConfigurationErrorsException(SR.GetString(SR.net_config_proxy), exception);
}
+#endif
}
}
using System.Net.NetworkInformation;
using System.Runtime.Serialization;
using Microsoft.Win32;
+ using System.Collections.Generic;
internal static class IntPtrHelper {
/*
private static volatile IPAddress[] _LocalAddresses;
private static object _LocalAddressesLock;
-#if MONO_NOT_IMPLEMENTED
#if !FEATURE_PAL
private static volatile NetworkAddressChangePolled s_AddressChange;
}
#else // !FEATURE_PAL
+
+ internal static bool IsAddressLocal(IPAddress ipAddress) {
+ IPAddress[] localAddresses = NclUtilities.LocalAddresses;
+ for (int i = 0; i < localAddresses.Length; i++)
+ {
+ if (ipAddress.Equals(localAddresses[i], false))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
private const int HostNameBufferLength = 256;
internal static string _LocalDomainName;
//
private static IPHostEntry GetLocalHost()
{
+#if MONO
+ return Dns.GetHostByName (Dns.GetHostName ());
+#else
//
// IPv6 Changes: If IPv6 is enabled, we can't simply use the
// old IPv4 gethostbyname(null). Instead we need
return Dns.NativeToHostEntry(nativePointer);
}
+#endif
} // GetLocalHost
}
}
#endif // !FEATURE_PAL
-#endif
private static object LocalAddressesLock
{
// </copyright>
//------------------------------------------------------------------------------
+#if MONO
+#undef FEATURE_PAL
+#endif
namespace System.Net {
using System.Collections;
using System.Collections.Generic;
private AuthenticationLevel m_AuthenticationLevel;
private TokenImpersonationLevel m_ImpersonationLevel;
#endif
+
private RequestCachePolicy m_CachePolicy;
private RequestCacheProtocol m_CacheProtocol;
private RequestCacheBinding m_CacheBinding;
throw new ArgumentNullException("creator");
}
+#if !DISABLE_CAS_USE
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
// Lock this object, then walk down PrefixList looking for a place to
// to insert this prefix.
lock (InternalSyncObject) {
if (s_PrefixList == null) {
GlobalLog.Print("WebRequest::Initialize(): calling ConfigurationManager.GetSection()");
+#if MONO
+ s_PrefixList = PopulatePrefixList ();
+#else
s_PrefixList = WebRequestModulesSectionInternal.GetSection().WebRequestModules;
+#endif
}
}
}
}
}
+#if MONO
+ static ArrayList PopulatePrefixList ()
+ {
+ var res = new ArrayList();
+
+#if MOBILE || !CONFIGURATION_DEP
+ IWebRequestCreate http = new HttpRequestCreator ();
+ res.Add(new WebRequestPrefixElement("http", http));
+ res.Add(new WebRequestPrefixElement("https", http));
+ res.Add(new WebRequestPrefixElement("file", new FileWebRequestCreator ()));
+ res.Add(new WebRequestPrefixElement("ftp", new FtpRequestCreator ()));
+#else
+ object cfg = ConfigurationManager.GetSection ("system.net/webRequestModules");
+ WebRequestModulesSection s = cfg as WebRequestModulesSection;
+ if (s != null) {
+ foreach (WebRequestModuleElement el in s.WebRequestModules)
+ res.Add (new WebRequestPrefixElement(el.Prefix, el.Type));
+ }
+#endif
+ return res;
+ }
+#endif
+
+
// constructors
/// <devdoc>
return RequestCacheManager.GetBinding(string.Empty).Policy;
}
set {
+#if !DISABLE_CAS_USE
// This is a replacement of RequestCachePermission demand since we are not including the latest in the product.
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
RequestCacheBinding binding = RequestCacheManager.GetBinding(string.Empty);
RequestCacheManager.SetBinding(string.Empty, new RequestCacheBinding(binding.Cache, binding.Validator, value));
}
}
-
+#if !MONO
// Methods to retrieve the context of the "reading phase" and of the "writing phase" of the request.
// Each request type can define what goes into what phase. Typically, the writing phase corresponds to
// GetRequestStream() and the reading phase to GetResponse(), but if there's no request body, both phases
{
throw ExceptionHelper.MethodNotImplementedException;
}
-
+#endif
//
//
{
get
{
+#if !DISABLE_CAS_USE
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
return InternalDefaultWebProxy;
}
set
{
+#if !DISABLE_CAS_USE
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
InternalDefaultWebProxy = value;
}
}
//
public static IWebProxy GetSystemWebProxy()
{
+#if !DISABLE_CAS_USE
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
return InternalGetSystemWebProxy();
}
internal static IWebProxy InternalGetSystemWebProxy()
{
+#if MONO
+ // FIXME: Need to break mobile internal API
+ return WebProxy.CreateDefaultProxy();
+#else
return new WebProxyWrapperOpaque(new WebProxy(true));
+#endif
}
//
}
}
-
+#if !MONO
//
internal void SetupCacheProtocol(Uri uri)
{
s_EtwFireEndGetRequestStream(this, success, synchronous);
}
}
+#endif
} // class WebRequest
} // namespace System.Net
static TimerThread() {
s_ThreadEvents = new WaitHandle[] { s_ThreadShutdownEvent, s_ThreadReadyEvent };
+#if MONO_FEATURE_MULTIPLE_APPDOMAINS
AppDomain.CurrentDomain.DomainUnload += new EventHandler(OnDomainUnload);
+#endif
}
/// <summary>
/// </devdoc>
[Obsolete("This method has been deprecated. Please use the proxy selected for you by default. http://go.microsoft.com/fwlink/?linkid=14202")]
public static WebProxy GetDefaultProxy() {
+#if !DISABLE_CAS_USE
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
return new WebProxy(true);
}
if (useRegistry) {
// just make the proxy advanced, don't populate with any settings
// note - this will happen in the context of the user performing the deserialization (their proxy settings get read)
+#if !DISABLE_CAS_USE
ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
UnsafeUpdateFromRegistry();
return;
}
}
}
+#if MONO
+ public static IWebProxy CreateDefaultProxy ()
+ {
+#if MONOTOUCH
+ return Mono.Net.CFNetwork.GetDefaultProxy ();
+#elif MONODROID
+ // Return the system web proxy. This only works for ICS+.
+ var data = AndroidPlatform.GetDefaultProxy ();
+ if (data != null)
+ return data;
+#else
+ if (Platform.IsMacOS) {
+ var data = Mono.Net.CFNetwork.GetDefaultProxy ();
+ if (data != null)
+ return data;
+ }
+#endif
+
+ return new WebProxy (true);
+ }
+#endif
+
// This constructor is used internally to make WebProxies that read their state from the registry.
//
internal WebProxy(bool enableAutoproxy)
internal void UnsafeUpdateFromRegistry() {
GlobalLog.Assert(!_UseRegistry, "WebProxy#{0}::UnsafeUpdateFromRegistry()|_UseRegistry ScriptEngine#{1}", ValidationHelper.HashString(this), ValidationHelper.HashString(m_ScriptEngine));
_UseRegistry = true;
-#if !FEATURE_PAL
+#if !FEATURE_PAL || !MOBILE
ScriptEngine = new AutoWebProxyScriptEngine(this, true);
WebProxyData webProxyData = ScriptEngine.GetWebProxyData();
return obj == (object)this;
}
+#if !MONO
public override int GetHashCode()
{
return RuntimeHelpers.GetHashCode(this);
}
+#endif
#if !FEATURE_CORECLR
public static bool operator ==(RuntimeType left, RuntimeType right)
return !(a == b);
}
+#if MONO
+ int CalculateCount()
+ {
+ Array a = m_array as Array;
+ if (a == null)
+ throw new ArgumentException ();
+
+ var total = a.Rank * a.Length;
+ return total - m_offset;
+ }
+#else
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern int CalculateCount();
+#endif
private Object m_array;
private int m_offset;
GC.SuppressFinalize(this);
}
+#if MONO
+ static void FireCustomerDebugProbe()
+ {
+ }
+#else
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
private extern void FireCustomerDebugProbe();
+#endif
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
protected void SetHandle(IntPtr handle) {
**
**
=============================================================================*/
-
+#if !FULL_AOT_RUNTIME
namespace System.Runtime.InteropServices {
using System;
private Object m_WrappedObject;
}
}
+#endif
\ No newline at end of file
**
**
=============================================================================*/
-
+#if !FULL_AOT_RUNTIME
namespace System.Runtime.InteropServices {
using System;
private int m_ErrorCode;
}
}
+#endif
\ No newline at end of file
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern void SetHandleAsInvalid();
-
+#endif
// Implement this abstract method in your derived class to specify how to
// free the handle. Be careful not write any code that's subject to faults
// in this method (the runtime will prepare the infrastructure for you so
// MDA is enabled.
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
protected abstract bool ReleaseHandle();
-
+#if !MONO
// Add a reason why this handle should not be relinquished (i.e. have
// ReleaseHandle called on it). This method has dangerous in the name since
// it must always be used carefully (e.g. called within a CER) to avoid
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
//
// Uwrap delegate from Expression<T>
//
- q = TypeManager.GetTypeArguments (q)[0];
- p = TypeManager.GetTypeArguments (p)[0];
+ q = TypeManager.GetTypeArguments (q) [0];
+ p = TypeManager.GetTypeArguments (p) [0];
}
var p_m = Delegate.GetInvokeMethod (p);
// if p has a return type Y, and q is void returning, then C1 is the better conversion.
//
if (q.Kind == MemberKind.Void) {
- return p.Kind != MemberKind.Void ? 1: 0;
+ return p.Kind != MemberKind.Void ? 1 : 0;
}
- var am = (AnonymousMethodExpression) a.Expr;
+ var am = (AnonymousMethodExpression)a.Expr;
//
// When anonymous method is an asynchronous, and P has a return type Task<Y1>, and Q has a return type Task<Y2>
//
if (p.IsGenericTask || q.IsGenericTask) {
if (am.Block.IsAsync && p.IsGenericTask && q.IsGenericTask) {
- q = q.TypeArguments[0];
- p = p.TypeArguments[0];
+ q = q.TypeArguments [0];
+ p = p.TypeArguments [0];
}
}
if (argument_type == q)
return 2;
- //
- // The parameters are identicial and return type is not void, use better type conversion
- // on return type to determine better one
- //
- return BetterTypeConversion (ec, p, q);
+ return IsBetterConversionTarget (ec, p, q);
+ }
+
+ static int IsBetterConversionTarget (ResolveContext rc, TypeSpec p, TypeSpec q)
+ {
+ if ((p.Kind == MemberKind.Delegate || p.IsExpressionTreeType) && (q.Kind == MemberKind.Delegate || q.IsExpressionTreeType)) {
+
+ if (p.Kind != MemberKind.Delegate) {
+ p = TypeManager.GetTypeArguments (p) [0];
+ }
+
+ if (q.Kind != MemberKind.Delegate) {
+ q = TypeManager.GetTypeArguments (q) [0];
+ }
+
+ var p_m = Delegate.GetInvokeMethod (p);
+ var q_m = Delegate.GetInvokeMethod (q);
+
+ p = p_m.ReturnType;
+ q = q_m.ReturnType;
+
+ //
+ // if p is void returning, and q has a return type Y, then C2 is the better conversion.
+ //
+ if (p.Kind == MemberKind.Void) {
+ return q.Kind != MemberKind.Void ? 2 : 0;
+ }
+
+ //
+ // if p has a return type Y, and q is void returning, then C1 is the better conversion.
+ //
+ if (q.Kind == MemberKind.Void) {
+ return p.Kind != MemberKind.Void ? 1 : 0;
+ }
+
+ return IsBetterConversionTarget (rc, p, q);
+ }
+
+ if (p.IsGenericTask && q.IsGenericTask) {
+ q = q.TypeArguments [0];
+ p = p.TypeArguments [0];
+ return IsBetterConversionTarget (rc, p, q);
+ }
+
+ if (p.IsNullableType) {
+ p = Nullable.NullableInfo.GetUnderlyingType (p);
+ if (!BuiltinTypeSpec.IsPrimitiveType (p))
+ return 0;
+ }
+
+ if (q.IsNullableType) {
+ q = Nullable.NullableInfo.GetUnderlyingType (q);
+ if (!BuiltinTypeSpec.IsPrimitiveType (q))
+ return 0;
+ }
+
+ return BetterTypeConversion (rc, p, q);
}
//
return 1;
}
- // FIXME: handle lifted operators
-
// TODO: this is expensive
Expression p_tmp = new EmptyExpression (p);
Expression q_tmp = new EmptyExpression (q);
$(ProjectDir)\..\jay\jay.exe -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
--- /dev/null
+using System;
+using System.Threading.Tasks;
+using System.Linq.Expressions;
+
+public static class Program
+{
+ public delegate void DelegateVoid (int arg);
+ public delegate int DelegateInt (string arg);
+
+ public static int Main ()
+ {
+ Foo (Bar);
+
+ TT (null);
+ NN (0);
+ NN2 (1);
+ Complex (null);
+ return 0;
+ }
+
+ static void TT (Task<string> a)
+ {
+ }
+
+ static void TT (Task<object> b)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ static void NN (sbyte a)
+ {
+ }
+
+ static void NN (uint? b)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ static void NN2 (sbyte? a)
+ {
+ }
+
+ static void NN2 (uint? b)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ public static void Bar (int arg)
+ {
+ }
+
+ public static int Bar (string arg)
+ {
+ return 2;
+ }
+
+ public static void Foo (DelegateVoid input)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ public static void Foo (DelegateInt input)
+ {
+ }
+
+ static void Complex (Expression<Func<Task<short>>> arg)
+ {
+ }
+
+ static void Complex (Expression<Func<Task<ulong>>> arg)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+}
\ No newline at end of file
</method>
</type>
</test>
+ <test name="test-935.cs">
+ <type name="Program">
+ <method name="Int32 Main()" attrs="150">
+ <size>73</size>
+ </method>
+ <method name="Void TT(System.Threading.Tasks.Task`1[System.String])" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void TT(System.Threading.Tasks.Task`1[System.Object])" attrs="145">
+ <size>12</size>
+ </method>
+ <method name="Void NN(SByte)" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void NN(System.Nullable`1[System.UInt32])" attrs="145">
+ <size>12</size>
+ </method>
+ <method name="Void NN2(System.Nullable`1[System.SByte])" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void NN2(System.Nullable`1[System.UInt32])" attrs="145">
+ <size>12</size>
+ </method>
+ <method name="Void Bar(Int32)" attrs="150">
+ <size>2</size>
+ </method>
+ <method name="Int32 Bar(System.String)" attrs="150">
+ <size>10</size>
+ </method>
+ <method name="Void Foo(DelegateVoid)" attrs="150">
+ <size>12</size>
+ </method>
+ <method name="Void Foo(DelegateInt)" attrs="150">
+ <size>2</size>
+ </method>
+ <method name="Void Complex(System.Linq.Expressions.Expression`1[System.Func`1[System.Threading.Tasks.Task`1[System.Int16]]])" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void Complex(System.Linq.Expressions.Expression`1[System.Func`1[System.Threading.Tasks.Task`1[System.UInt64]]])" attrs="145">
+ <size>12</size>
+ </method>
+ </type>
+ <type name="Program+DelegateVoid">
+ <method name="Void Invoke(Int32)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+ <size>0</size>
+ </method>
+ </type>
+ <type name="Program+DelegateInt">
+ <method name="Int32 Invoke(System.String)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+ <size>0</size>
+ </method>
+ </type>
+ </test>
<test name="test-94.cs">
<type name="Base">
<method name="Int32 IVehicle.Start()" attrs="481">
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
LIB_REFS = System.Xml System
PROGRAM = mconfig.exe
-BUILT_SOURCES=Mono.MonoConfig/consts.cs
-
-Mono.MonoConfig/consts.cs: Mono.MonoConfig/consts.cs.in
- sed -e "s;@MONO_SYSCONFDIR@;$(sysconfdir);g" < $< > $@
-
install-local: install-local-data
install-local-data:
$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mono/mconfig/
$(INSTALL_DATA) data/config.xml $(DESTDIR)$(sysconfdir)/mono/mconfig
-EXTRA_DISTFILES = TODO data/config.xml Mono.MonoConfig/consts.cs.in
+EXTRA_DISTFILES = TODO data/config.xml
include ../../build/executable.make
+++ /dev/null
-//
-// Authors:
-// Marek Habersack (mhabersack@novell.com)
-//
-// (C) 2007 Novell, Inc
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.IO;
-
-namespace Mono.MonoConfig
-{
- public class Constants
- {
- public static readonly string GlobalConfigPath;
-
- static Constants ()
- {
- GlobalConfigPath = String.Format ("@MONO_SYSCONFDIR@{0}mono{0}mconfig{0}config.xml",
- Path.DirectorySeparatorChar);
- }
- }
-}
<Compile Include="Mono.MonoConfig\IDocumentNodeHandler.cs" />\r
<Compile Include="Mono.MonoConfig\IFeatureGenerator.cs" />\r
<Compile Include="Mono.MonoConfig\IStorageConsumer.cs" />\r
- <Compile Include="Mono.MonoConfig\Section.cs" />\r
- <Compile Include="Mono.MonoConfig\consts.cs" />\r </ItemGroup>\r
+ <Compile Include="Mono.MonoConfig\Section.cs" />\r </ItemGroup>\r
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
Other similar extension points exist, see Microsoft.Common.targets.\r
<Target Name="BeforeBuild">\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
class MConfig
{
static string[] configPaths = {
- Constants.GlobalConfigPath,
+ Path.GetFullPath (Path.Combine (Environment.CommandLine, "..", "..", "..","..", "etc", "mono", "mconfig", "config.xml")),
Path.Combine (ConfigPath, "config.xml"),
Path.Combine (".", "mconfig.xml"),
null
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
$(MAKE) Test/DocTest-DropNS-unified-multitest.dll
# mdoc update for both classic and unified
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework
# now run it again to verify idempotency
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework
diff --exclude=.svn -rup Test/en.expected-dropns-multi Test/en.actual
$(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-DropNS-unified.dll --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework
# mdoc update for both classic and unified
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework
diff --exclude=.svn -rup Test/en.expected-dropns-multi-withexisting Test/en.actual
string apistyle = string.Empty;
bool isClassicRun;
- bool multiassembly;
+
bool delete;
bool show_exceptions;
bool no_assembly_versions, ignore_missing_types;
{
return !string.IsNullOrWhiteSpace (droppedNamespace);
}
-
+
+ /// <summary>Logic flag to signify that we should list assemblies at the method level, since there are multiple
+ /// assemblies for a given type/method.</summary>
+ public bool IsMultiAssembly {
+ get {
+ return apistyle == "classic" || apistyle == "unified";
+ }
+ }
static List<string> droppedAssemblies = new List<string>();
{ "preserve",
"Do not delete members that don't exist in the assembly, but rather mark them as preserved.",
v => PreserveTag = "true" },
- { "multiassembly",
- "Allow types to be in multiple assemblies.",
- v => multiassembly = true },
{ "api-style=",
"Denotes the apistyle. Currently, only `classic` and `unified` are supported. `classic` set of assemblies should be run first, immediately followed by 'unified' assemblies with the `dropns` parameter.",
- v => apistyle = v.ToLowerInvariant ()},
+ v => { apistyle = v.ToLowerInvariant (); }},
};
var assemblies = Parse (p, args, "update",
"[OPTIONS]+ ASSEMBLIES",
private void AddIndexAssembly (AssemblyDefinition assembly, XmlElement parent)
{
XmlElement index_assembly = null;
- if (multiassembly)
+ if (IsMultiAssembly)
index_assembly = (XmlElement)parent.SelectSingleNode ("Assembly[@Name='"+ assembly.Name.Name +"']");
if (index_assembly == null)
XmlElement index_types = WriteElement(index.DocumentElement, "Types");
XmlElement index_assemblies = WriteElement(index.DocumentElement, "Assemblies");
- if (!multiassembly)
+ if (!IsMultiAssembly)
index_assemblies.RemoveAll ();
WriteElementText(me, "MemberType", GetMemberType(mi));
if (!no_assembly_versions) {
- if (!multiassembly)
+ if (!IsMultiAssembly)
UpdateAssemblyVersions (me, mi, true);
else {
var node = AddAssemblyNameToNode (me, mi.Module);
member.AppendChild (link);
AddTargets (em, info);
- extensionMethods.Add (em);
+ var sig = em.SelectSingleNode ("Member/MemberSignature[@Language='C#']/@Value");
+ if (!IsMultiAssembly || (IsMultiAssembly && sig != null && !extensionMethods.Any (ex => ex.SelectSingleNode ("Member/MemberSignature[@Language='C#']/@Value").Value == sig.Value))) {
+ extensionMethods.Add (em);
+ }
}
private static void RemoveExcept (XmlNode node, string[] except)
private bool UpdateAssemblyVersions(XmlElement root, AssemblyDefinition assembly, string[] assemblyVersions, bool add)
{
- if (multiassembly)
+ if (IsMultiAssembly)
return false;
XmlElement av = (XmlElement) root.SelectSingleNode ("AssemblyVersions");
public string WillDeleteInV2Classic {get;set;}
#endif
}
+ public static class MyClassExtensions {
+ public static bool AnExtension (this MyClass value) { return false; }
+ }
#if DELETETEST
public class TypeOnlyInClassic {}
#endif
}
+ public static class MyClassExtensions {
+ public static bool AnExtension (this MyClass value) { return false; }
+ }
#if DELETETEST
public struct nint {
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<Overview>
<Assemblies>
+ <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
<Assembly Name="DocTest-DropNS-unified" Version="0.0.0.0">
<Attributes>
<Attribute>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
</Namespace>
</Types>
<Title>DocTest-DropNS-classic</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<remarks>To be added.</remarks>
</Docs>
<Members>
- <Member MemberName=".ctor">
+ <Member MemberName=".ctor" apistyle="classic">
<MemberSignature Language="C#" Value="public MyOtherClass ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<remarks>To be added.</remarks>
</Docs>
</Member>
- <Member MemberName="Hello">
+ <Member MemberName="Hello" apistyle="classic">
<MemberSignature Language="C#" Value="public float Hello (int value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<remarks>To be added.</remarks>
</Docs>
</Member>
- <Member MemberName="MyProperty">
+ <Member MemberName="MyProperty" apistyle="classic">
<MemberSignature Language="C#" Value="public string MyProperty { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<Overview>
<Assemblies>
+ <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
<Assembly Name="DocTest-DropNS-unified" Version="0.0.0.0">
<Attributes>
<Attribute>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
</Namespace>
<Namespace Name="MyFramework.MyOtherNamespace">
<Type Name="MyOtherClass" Kind="Class" />
</Namespace>
</Types>
<Title>Untitled</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".property instance string AddedInV2" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string AddedInV2Classic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string AddedInV2Unified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string InBoth" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string InBothClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance valuetype MyFramework.MyNamespace.nint InBothMagicType" apistyle="unified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string InBothUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<remarks>To be added.</remarks>
</Docs>
<Members>
- <Member MemberName=".ctor">
+ <Member MemberName=".ctor" apistyle="classic">
<MemberSignature Language="C#" Value="public TypeOnlyInClassic ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Type Name="WillDelete" FullName="MyFramework.MyNamespace.WillDelete">
<TypeSignature Language="C#" Value="public class WillDelete" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit WillDelete extends System.Object" />
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".property instance string Name" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<Overview>
<Assemblies>
+ <Assembly Name="DocTest-DropNS-classic-deletetest" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
<Assembly Name="DocTest-DropNS-unified-deletetest" Version="0.0.0.0">
<Attributes>
<Attribute>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
<Type Name="nint" Kind="Structure" />
</Namespace>
</Types>
<Title>DocTest-DropNS-classic-deletetest</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
<AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
<Type Name="OnlyInMulti" Kind="Class" />
</Namespace>
</Types>
<Title>DocTest-DropNS-classic</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
<Type Name="OnlyInMulti" Kind="Class" />
</Namespace>
</Types>
<Title>Untitled</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
</PreBuildEvent>\r
-\r
- <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+ <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
\r
* Changes which are already detected at runtime, like the addition
* of icalls, do not require an increment.
*/
-#define MONO_CORLIB_VERSION 147
+#define MONO_CORLIB_VERSION 148
typedef struct
{
MonoObject *
ves_icall_System_AppDomain_GetData (MonoAppDomain *ad, MonoString *name)
{
+ MonoError error;
MonoDomain *add;
MonoObject *o;
char *str;
add = ad->data;
g_assert (add);
- str = mono_string_to_utf8 (name);
+ str = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
mono_domain_lock (add);
#else
char *fname;
- fname = mono_string_to_utf8 (friendly_name);
+ fname = mono_string_to_utf8_checked (friendly_name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
ad = mono_domain_create_appdomain_internal (fname, setup, &error);
g_free (fname);
return NULL;
}
- name = filename = mono_string_to_utf8 (fname);
+ name = filename = mono_string_to_utf8_checked (fname, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
ass = mono_assembly_open_full (filename, &status, refOnly);
g_assert (assRef);
- name = mono_string_to_utf8 (assRef);
+ name = mono_string_to_utf8_checked (assRef, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
parsed = mono_assembly_name_parse (name, &aname);
g_free (name);
static MonoAssemblyName*
mono_assembly_apply_binding (MonoAssemblyName *aname, MonoAssemblyName *dest_name)
{
+ MonoError error;
MonoAssemblyBindingInfo *info, *info2;
MonoImage *ppimage;
MonoDomain *domain;
if (domain && domain->setup && domain->setup->configuration_file) {
mono_domain_lock (domain);
if (!domain->assembly_bindings_parsed) {
- gchar *domain_config_file_name = mono_string_to_utf8 (domain->setup->configuration_file);
+ gchar *domain_config_file_name = mono_string_to_utf8_checked (domain->setup->configuration_file, &error);
+ /* expect this to succeed because mono_domain_set_options_from_config () did
+ * the same thing when the domain was created. */
+ mono_error_assert_ok (&error);
+
gchar *domain_config_file_path = mono_portability_find_file (domain_config_file_name, TRUE);
if (!domain_config_file_path)
MonoClass *fieldhandle_class;
MonoClass *methodhandle_class;
MonoClass *systemtype_class;
- MonoClass *monotype_class;
MonoClass *runtimetype_class;
MonoClass *exception_class;
MonoClass *threadabortexception_class;
if (setup_finished)
return TRUE;
- keypad_xmit_str = keypad != NULL ? mono_string_to_utf8 (keypad) : NULL;
+ keypad_xmit_str = NULL;
+ if (keypad != NULL) {
+ keypad_xmit_str = mono_string_to_utf8_checked (keypad, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
+ }
console_set_signal_handlers ();
setup_finished = TRUE;
if (!atexit_called) {
- if (teardown != NULL)
- teardown_str = mono_string_to_utf8 (teardown);
+ if (teardown != NULL) {
+ teardown_str = mono_string_to_utf8_checked (teardown, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
+ }
mono_atexit (tty_teardown);
}
void
mono_object_describe (MonoObject *obj)
{
+ MonoError error;
MonoClass* klass;
const char* sep;
if (!obj) {
}
klass = mono_object_class (obj);
if (klass == mono_defaults.string_class) {
- char *utf8 = mono_string_to_utf8 ((MonoString*)obj);
- if (strlen (utf8) > 60) {
+ char *utf8 = mono_string_to_utf8_checked ((MonoString*)obj, &error);
+ mono_error_cleanup (&error); /* FIXME don't swallow the error */
+ if (utf8 && strlen (utf8) > 60) {
utf8 [57] = '.';
utf8 [58] = '.';
utf8 [59] = '.';
utf8 [60] = 0;
}
- g_print ("String at %p, length: %d, '%s'\n", obj, mono_string_length ((MonoString*) obj), utf8);
+ if (utf8) {
+ g_print ("String at %p, length: %d, '%s'\n", obj, mono_string_length ((MonoString*) obj), utf8);
+ } else {
+ g_print ("String at %p, length: %d, unable to decode UTF16\n", obj, mono_string_length ((MonoString*) obj));
+ }
g_free (utf8);
} else if (klass->rank) {
MonoArray *array = (MonoArray*)obj;
mono_defaults.systemtype_class = mono_class_load_from_name (
mono_defaults.corlib, "System", "Type");
- mono_defaults.monotype_class = mono_class_load_from_name (
- mono_defaults.corlib, "System", "MonoType");
-
mono_defaults.runtimetype_class = mono_class_load_from_name (
mono_defaults.corlib, "System", "RuntimeType");
{
MonoObject *type = (MonoObject *)vtable->type;
- if (type->vtable->klass != mono_defaults.monotype_class)
+ if (type->vtable->klass != mono_defaults.runtimetype_class)
MONO_GC_UNREGISTER_ROOT_IF_MOVING (vtable->type);
}
MonoString *
ves_icall_System_IO_MonoIO_FindFirst (MonoString *path,
MonoString *path_with_pattern,
- gint32 *result_attr, gint32 *error,
+ gint32 *result_attr, gint32 *ioerror,
gpointer *handle)
{
+ MonoError error;
WIN32_FIND_DATA data;
HANDLE find_handle;
IncrementalFind *ifh;
MonoString *result;
- *error = ERROR_SUCCESS;
+ *ioerror = ERROR_SUCCESS;
find_handle = FindFirstFile (mono_string_chars (path_with_pattern), &data);
if (find_error == ERROR_FILE_NOT_FOUND)
return NULL;
- *error = find_error;
+ *ioerror = find_error;
return NULL;
}
ifh = g_new (IncrementalFind, 1);
ifh->find_handle = find_handle;
- ifh->utf8_path = mono_string_to_utf8 (path);
+ ifh->utf8_path = mono_string_to_utf8_checked (path, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
ifh->domain = mono_domain_get ();
*handle = ifh;
if (FindNextFile (find_handle, &data) == FALSE){
int e = GetLastError ();
if (e != ERROR_NO_MORE_FILES)
- *error = e;
+ *ioerror = e;
return NULL;
}
}
gint64
mono_filesize_from_path (MonoString *string)
{
+ MonoError error;
struct stat buf;
gint64 res;
- char *path = mono_string_to_utf8 (string);
+ char *path = mono_string_to_utf8_checked (string, &error);
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
MONO_ENTER_GC_SAFE;
if (stat (path, &buf) == -1)
XXX implement options
*/
static void*
-open_file_map (MonoString *path, int input_fd, int mode, gint64 *capacity, int access, int options, int *error)
+open_file_map (const char *c_path, int input_fd, int mode, gint64 *capacity, int access, int options, int *ioerror)
{
struct stat buf;
- char *c_path = path ? mono_string_to_utf8 (path) : NULL;
MmapHandle *handle = NULL;
int result, fd;
- if (path)
+ if (c_path)
result = stat (c_path, &buf);
else
result = fstat (input_fd, &buf);
if (mode == FILE_MODE_TRUNCATE || mode == FILE_MODE_APPEND || mode == FILE_MODE_OPEN) {
if (result == -1) { //XXX translate errno?
- *error = FILE_NOT_FOUND;
+ *ioerror = FILE_NOT_FOUND;
goto done;
}
}
if (mode == FILE_MODE_CREATE_NEW && result == 0) {
- *error = FILE_ALREADY_EXISTS;
+ *ioerror = FILE_ALREADY_EXISTS;
goto done;
}
* also makes little sense, so don't do the check if th file is one of these.
*/
if (buf.st_size == 0 && !is_special_zero_size_file (&buf)) {
- *error = CAPACITY_SMALLER_THAN_FILE_SIZE;
+ *ioerror = CAPACITY_SMALLER_THAN_FILE_SIZE;
goto done;
}
*capacity = buf.st_size;
} else if (*capacity < buf.st_size) {
- *error = CAPACITY_SMALLER_THAN_FILE_SIZE;
+ *ioerror = CAPACITY_SMALLER_THAN_FILE_SIZE;
goto done;
}
} else {
if (mode == FILE_MODE_CREATE_NEW && *capacity == 0) {
- *error = CAPACITY_SMALLER_THAN_FILE_SIZE;
+ *ioerror = CAPACITY_SMALLER_THAN_FILE_SIZE;
goto done;
}
}
- if (path) //FIXME use io portability?
+ if (c_path) //FIXME use io portability?
fd = open (c_path, file_mode_to_unix (mode) | access_mode_to_unix (access), DEFAULT_FILEMODE);
else
fd = dup (input_fd);
if (fd == -1) { //XXX translate errno?
- *error = COULD_NOT_OPEN;
+ *ioerror = COULD_NOT_OPEN;
goto done;
}
handle->fd = fd;
done:
- g_free (c_path);
return (void*)handle;
}
#define MONO_ANON_FILE_TEMPLATE "/mono.anonmap.XXXXXXXXX"
static void*
-open_memory_map (MonoString *mapName, int mode, gint64 *capacity, int access, int options, int *error)
+open_memory_map (const char *c_mapName, int mode, gint64 *capacity, int access, int options, int *ioerror)
{
- char *c_mapName;
MmapHandle *handle;
if (*capacity <= 1) {
- *error = CAPACITY_MUST_BE_POSITIVE;
+ *ioerror = CAPACITY_MUST_BE_POSITIVE;
return NULL;
}
if (!(mode == FILE_MODE_CREATE_NEW || mode == FILE_MODE_OPEN_OR_CREATE || mode == FILE_MODE_OPEN)) {
- *error = INVALID_FILE_MODE;
+ *ioerror = INVALID_FILE_MODE;
return NULL;
}
- c_mapName = mono_string_to_utf8 (mapName);
-
named_regions_lock ();
handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
if (handle) {
if (mode == FILE_MODE_CREATE_NEW) {
- *error = FILE_ALREADY_EXISTS;
+ *ioerror = FILE_ALREADY_EXISTS;
goto done;
}
int unused G_GNUC_UNUSED, alloc_size;
if (mode == FILE_MODE_OPEN) {
- *error = FILE_NOT_FOUND;
+ *ioerror = FILE_NOT_FOUND;
goto done;
}
*capacity = align_up_to_page_size (*capacity);
tmp_dir = g_get_tmp_dir ();
alloc_size = strlen (tmp_dir) + strlen (MONO_ANON_FILE_TEMPLATE) + 1;
if (alloc_size > 1024) {//rather fail that stack overflow
- *error = COULD_NOT_MAP_MEMORY;
+ *ioerror = COULD_NOT_MAP_MEMORY;
goto done;
}
file_name = (char *)alloca (alloc_size);
fd = mkstemp (file_name);
if (fd == -1) {
- *error = COULD_NOT_MAP_MEMORY;
+ *ioerror = COULD_NOT_MAP_MEMORY;
goto done;
}
done:
named_regions_unlock ();
- g_free (c_mapName);
return handle;
}
+/* This is an icall */
void *
-mono_mmap_open_file (MonoString *path, int mode, MonoString *mapName, gint64 *capacity, int access, int options, int *error)
+mono_mmap_open_file (MonoString *path, int mode, MonoString *mapName, gint64 *capacity, int access, int options, int *ioerror)
{
+ MonoError error;
+ MmapHandle *handle = NULL;
g_assert (path || mapName);
- if (!mapName)
- return open_file_map (path, -1, mode, capacity, access, options, error);
+ if (!mapName) {
+ char * c_path = mono_string_to_utf8_checked (path, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
+ handle = open_file_map (c_path, -1, mode, capacity, access, options, ioerror);
+ g_free (c_path);
+ return handle;
+ }
- if (path) {
- MmapHandle *handle;
- char *c_mapName = mono_string_to_utf8 (mapName);
+ char *c_mapName = mono_string_to_utf8_checked (mapName, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
+ if (path) {
named_regions_lock ();
handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
if (handle) {
- *error = FILE_ALREADY_EXISTS;
+ *ioerror = FILE_ALREADY_EXISTS;
handle = NULL;
} else {
- handle = (MmapHandle *)open_file_map (path, -1, mode, capacity, access, options, error);
- if (handle) {
- handle->name = g_strdup (c_mapName);
- g_hash_table_insert (named_regions, handle->name, handle);
+ char *c_path = mono_string_to_utf8_checked (path, &error);
+ if (is_ok (&error)) {
+ handle = (MmapHandle *)open_file_map (c_path, -1, mode, capacity, access, options, ioerror);
+ if (handle) {
+ handle->name = g_strdup (c_mapName);
+ g_hash_table_insert (named_regions, handle->name, handle);
+ }
+ } else {
+ handle = NULL;
}
+ g_free (c_path);
}
named_regions_unlock ();
+ } else
+ handle = open_memory_map (c_mapName, mode, capacity, access, options, ioerror);
- g_free (c_mapName);
- return handle;
- }
-
- return open_memory_map (mapName, mode, capacity, access, options, error);
+ g_free (c_mapName);
+ return handle;
}
+/* this is an icall */
void *
-mono_mmap_open_handle (void *input_fd, MonoString *mapName, gint64 *capacity, int access, int options, int *error)
+mono_mmap_open_handle (void *input_fd, MonoString *mapName, gint64 *capacity, int access, int options, int *ioerror)
{
+ MonoError error;
MmapHandle *handle;
if (!mapName) {
- handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, error);
+ handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, ioerror);
} else {
- char *c_mapName = mono_string_to_utf8 (mapName);
+ char *c_mapName = mono_string_to_utf8_checked (mapName, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
named_regions_lock ();
handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
if (handle) {
- *error = FILE_ALREADY_EXISTS;
+ *ioerror = FILE_ALREADY_EXISTS;
handle = NULL;
} else {
//XXX we're exploiting wapi HANDLE == FD equivalence. THIS IS FRAGILE, create a _wapi_handle_to_fd call
- handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, error);
+ handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, ioerror);
handle->name = g_strdup (c_mapName);
g_hash_table_insert (named_regions, handle->name, handle);
}
int
ves_icall_System_IO_InotifyWatcher_AddWatch (int fd, MonoString *name, gint32 mask)
{
+ MonoError error;
char *str, *path;
int retval;
if (name == NULL)
return -1;
- str = mono_string_to_utf8 (name);
+ str = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return -1;
path = mono_portability_find_file (str, TRUE);
if (!path)
path = str;
ICALL(MCATTR_2, "GetCustomAttributesInternal", custom_attrs_get_by_type)
ICALL(MCATTR_3, "IsDefinedInternal", custom_attrs_defined_internal)
-ICALL_TYPE(MTYPE, "System.MonoType", MTYPE_1)
-ICALL(MTYPE_1, "GetCorrespondingInflatedConstructor", ves_icall_MonoType_GetCorrespondingInflatedMethod)
-ICALL(MTYPE_2, "GetCorrespondingInflatedMethod", ves_icall_MonoType_GetCorrespondingInflatedMethod)
-ICALL(MTYPE_3, "type_from_obj", ves_icall_MonoType_type_from_obj)
-
#ifndef DISABLE_SOCKETS
ICALL_TYPE(NDNS, "System.Net.Dns", NDNS_1)
ICALL(NDNS_1, "GetHostByAddr_internal(string,string&,string[]&,string[]&)", ves_icall_System_Net_Dns_GetHostByAddr_internal)
ICALL_TYPE(RT, "System.RuntimeType", RT_1)
ICALL(RT_1, "CreateInstanceInternal", ves_icall_System_Activator_CreateInstanceInternal)
-ICALL(RT_2, "GetConstructors_internal", ves_icall_Type_GetConstructors_internal)
-ICALL(RT_3, "GetEvents_internal", ves_icall_Type_GetEvents_internal)
-ICALL(RT_5, "GetFields_internal", ves_icall_Type_GetFields_internal)
-ICALL(RT_6, "GetGenericArgumentsInternal", ves_icall_MonoType_GetGenericArguments)
-ICALL(RT_7, "GetGenericParameterAttributes", ves_icall_Type_GetGenericParameterAttributes)
-ICALL(RT_8, "GetGenericParameterConstraints_impl", ves_icall_Type_GetGenericParameterConstraints)
-ICALL(RT_9, "GetGenericParameterPosition", ves_icall_Type_GetGenericParameterPosition)
-ICALL(RT_10, "GetInterfaceMapData", ves_icall_Type_GetInterfaceMapData)
-ICALL(RT_11, "GetInterfaces", ves_icall_Type_GetInterfaces)
-ICALL(RT_12, "GetMethodsByName", ves_icall_Type_GetMethodsByName)
-ICALL(RT_13, "GetNestedTypes_internal", ves_icall_Type_GetNestedTypes)
-ICALL(RT_14, "GetPacking", ves_icall_Type_GetPacking)
-ICALL(RT_15, "GetPropertiesByName", ves_icall_Type_GetPropertiesByName)
+ICALL(RT_2, "GetConstructors_internal", ves_icall_RuntimeType_GetConstructors_internal)
+ICALL(RT_30, "GetCorrespondingInflatedConstructor", ves_icall_RuntimeType_GetCorrespondingInflatedMethod)
+ICALL(RT_31, "GetCorrespondingInflatedMethod", ves_icall_RuntimeType_GetCorrespondingInflatedMethod)
+ICALL(RT_3, "GetEvents_internal", ves_icall_RuntimeType_GetEvents_internal)
+ICALL(RT_5, "GetFields_internal", ves_icall_RuntimeType_GetFields_internal)
+ICALL(RT_6, "GetGenericArgumentsInternal", ves_icall_RuntimeType_GetGenericArguments)
+ICALL(RT_7, "GetGenericParameterAttributes", ves_icall_RuntimeType_GetGenericParameterAttributes)
+ICALL(RT_8, "GetGenericParameterConstraints_impl", ves_icall_RuntimeType_GetGenericParameterConstraints)
+ICALL(RT_9, "GetGenericParameterPosition", ves_icall_RuntimeType_GetGenericParameterPosition)
+ICALL(RT_10, "GetInterfaceMapData", ves_icall_RuntimeType_GetInterfaceMapData)
+ICALL(RT_11, "GetInterfaces", ves_icall_RuntimeType_GetInterfaces)
+ICALL(RT_12, "GetMethodsByName", ves_icall_RuntimeType_GetMethodsByName)
+ICALL(RT_13, "GetNestedTypes_internal", ves_icall_RuntimeType_GetNestedTypes)
+ICALL(RT_14, "GetPacking", ves_icall_RuntimeType_GetPacking)
+ICALL(RT_15, "GetPropertiesByName", ves_icall_RuntimeType_GetPropertiesByName)
ICALL(RT_16, "GetTypeCodeImplInternal", ves_icall_type_GetTypeCodeInternal)
ICALL(RT_28, "IsTypeExportedToWindowsRuntime", ves_icall_System_RuntimeType_IsTypeExportedToWindowsRuntime)
ICALL(RT_29, "IsWindowsRuntimeObjectType", ves_icall_System_RuntimeType_IsWindowsRuntimeObjectType)
-ICALL(RT_17, "MakeGenericType", ves_icall_Type_MakeGenericType)
-ICALL(RT_18, "MakePointerType", ves_icall_Type_MakePointerType)
+ICALL(RT_17, "MakeGenericType", ves_icall_RuntimeType_MakeGenericType)
+ICALL(RT_18, "MakePointerType", ves_icall_RuntimeType_MakePointerType)
ICALL(RT_19, "getFullName", ves_icall_System_MonoType_getFullName)
-ICALL(RT_21, "get_DeclaringMethod", ves_icall_MonoType_get_DeclaringMethod)
-ICALL(RT_22, "get_DeclaringType", ves_icall_MonoType_get_DeclaringType)
-ICALL(RT_23, "get_Name", ves_icall_MonoType_get_Name)
-ICALL(RT_24, "get_Namespace", ves_icall_MonoType_get_Namespace)
-ICALL(RT_25, "get_core_clr_security_level", vell_icall_MonoType_get_core_clr_security_level)
-ICALL(RT_26, "make_array_type", ves_icall_Type_make_array_type)
-ICALL(RT_27, "make_byref_type", ves_icall_Type_make_byref_type)
+ICALL(RT_21, "get_DeclaringMethod", ves_icall_RuntimeType_get_DeclaringMethod)
+ICALL(RT_22, "get_DeclaringType", ves_icall_RuntimeType_get_DeclaringType)
+ICALL(RT_23, "get_Name", ves_icall_RuntimeType_get_Name)
+ICALL(RT_24, "get_Namespace", ves_icall_RuntimeType_get_Namespace)
+ICALL(RT_25, "get_core_clr_security_level", vell_icall_RuntimeType_get_core_clr_security_level)
+ICALL(RT_26, "make_array_type", ves_icall_RuntimeType_make_array_type)
+ICALL(RT_27, "make_byref_type", ves_icall_RuntimeType_make_byref_type)
ICALL_TYPE(RTH, "System.RuntimeTypeHandle", RTH_1)
ICALL(RTH_1, "GetArrayRank", ves_icall_RuntimeTypeHandle_GetArrayRank)
return ret;
}
-ICALL_EXPORT void
-ves_icall_MonoType_type_from_obj (MonoReflectionType *mtype, MonoObject *obj)
-{
- mtype->type = &obj->vtable->klass->byval_arg;
- g_assert (mtype->type->type);
-}
-
ICALL_EXPORT gint32
ves_icall_ModuleBuilder_getToken (MonoReflectionModuleBuilder *mb, MonoObject *obj, gboolean create_open_instance)
{
MonoBoolean ignoreCase)
{
MonoError error;
- char *str = mono_string_to_utf8 (name);
MonoTypeNameParse info;
- MonoReflectionType *type;
+ MonoReflectionType *type = NULL;
gboolean parsedOk;
+ char *str = mono_string_to_utf8_checked (name, &error);
+ if (!is_ok (&error))
+ goto leave;
+
parsedOk = mono_reflection_parse_type (str, &info);
/* mono_reflection_parse_type() mangles the string */
if (!parsedOk) {
mono_reflection_free_type_info (&info);
- if (throwOnError) {
- mono_error_init (&error);
+ if (throwOnError)
mono_error_set_argument (&error, "typeName", "failed parse: %s", str);
- mono_error_set_pending_exception (&error);
- }
- g_free (str);
- return NULL;
+ goto leave;
}
type = type_from_parsed_name (&info, ignoreCase, &error);
mono_reflection_free_type_info (&info);
- g_free (str);
- if (!mono_error_ok (&error)) {
+ if (!is_ok (&error))
+ goto leave;
+
+ if (type == NULL){
+ if (throwOnError) {
+ mono_error_set_type_load_name (&error, g_strdup (str), NULL, "");
+ goto leave;
+ }
+ }
+
+leave:
+ g_free (str);
+ if (!is_ok (&error)) {
if (throwOnError)
mono_error_set_pending_exception (&error);
else
return NULL;
}
- if (type == NULL){
- MonoException *e = NULL;
-
- if (throwOnError)
- e = mono_get_exception_type_load (name, NULL);
-
- if (e) {
- mono_set_pending_exception (e);
- return NULL;
- }
- }
-
return type;
}
}
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetInterfaces (MonoReflectionType* type)
+ves_icall_RuntimeType_GetInterfaces (MonoReflectionType* type)
{
MonoError error;
MonoClass *klass = mono_class_from_mono_type (type->type);
if (len == 0) {
g_hash_table_destroy (iface_hash);
if (!data.domain->empty_types) {
- data.domain->empty_types = mono_array_new_cached (data.domain, mono_defaults.monotype_class, 0, &error);
+ data.domain->empty_types = mono_array_new_cached (data.domain, mono_defaults.runtimetype_class, 0, &error);
if (!is_ok (&error))
goto fail;
}
return data.domain->empty_types;
}
- data.iface_array = mono_array_new_cached (data.domain, mono_defaults.monotype_class, len, &error);
+ data.iface_array = mono_array_new_cached (data.domain, mono_defaults.runtimetype_class, len, &error);
if (!is_ok (&error))
goto fail;
g_hash_table_foreach (iface_hash, fill_iface_array, &data);
}
ICALL_EXPORT void
-ves_icall_Type_GetInterfaceMapData (MonoReflectionType *type, MonoReflectionType *iface, MonoArray **targets, MonoArray **methods)
+ves_icall_RuntimeType_GetInterfaceMapData (MonoReflectionType *type, MonoReflectionType *iface, MonoArray **targets, MonoArray **methods)
{
gboolean variance_used;
MonoClass *klass = mono_class_from_mono_type (type->type);
}
ICALL_EXPORT void
-ves_icall_Type_GetPacking (MonoReflectionType *type, guint32 *packing, guint32 *size)
+ves_icall_RuntimeType_GetPacking (MonoReflectionType *type, guint32 *packing, guint32 *size)
{
MonoError error;
MonoClass *klass = mono_class_from_mono_type (type->type);
}
ICALL_EXPORT MonoReflectionType*
-ves_icall_MonoType_get_DeclaringType (MonoReflectionType *type)
+ves_icall_RuntimeType_get_DeclaringType (MonoReflectionType *type)
{
MonoError error;
MonoReflectionType *ret;
}
ICALL_EXPORT MonoString*
-ves_icall_MonoType_get_Name (MonoReflectionType *type)
+ves_icall_RuntimeType_get_Name (MonoReflectionType *type)
{
MonoDomain *domain = mono_domain_get ();
MonoClass *klass = mono_class_from_mono_type (type->type);
}
ICALL_EXPORT MonoString*
-ves_icall_MonoType_get_Namespace (MonoReflectionType *type)
+ves_icall_RuntimeType_get_Namespace (MonoReflectionType *type)
{
MonoDomain *domain = mono_domain_get ();
MonoClass *klass = mono_class_from_mono_type (type->type);
}
ICALL_EXPORT MonoArray*
-ves_icall_MonoType_GetGenericArguments (MonoReflectionType *type, MonoBoolean runtimeTypeArray)
+ves_icall_RuntimeType_GetGenericArguments (MonoReflectionType *type, MonoBoolean runtimeTypeArray)
{
MonoError error;
MonoReflectionType *rt;
}
ICALL_EXPORT MonoReflectionType*
-ves_icall_Type_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
+ves_icall_RuntimeType_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
{
MonoError error;
MonoReflectionType *ret;
}
ICALL_EXPORT gint32
-ves_icall_Type_GetGenericParameterPosition (MonoReflectionType *type)
+ves_icall_RuntimeType_GetGenericParameterPosition (MonoReflectionType *type)
{
if (!IS_MONOTYPE (type))
return -1;
}
ICALL_EXPORT GenericParameterAttributes
-ves_icall_Type_GetGenericParameterAttributes (MonoReflectionType *type)
+ves_icall_RuntimeType_GetGenericParameterAttributes (MonoReflectionType *type)
{
g_assert (IS_MONOTYPE (type));
g_assert (is_generic_parameter (type->type));
}
ICALL_EXPORT MonoArray *
-ves_icall_Type_GetGenericParameterConstraints (MonoReflectionType *type)
+ves_icall_RuntimeType_GetGenericParameterConstraints (MonoReflectionType *type)
{
MonoError error;
MonoReflectionType *rt;
for (count = 0, ptr = param_info->constraints; ptr && *ptr; ptr++, count++)
;
- res = mono_array_new_checked (domain, mono_defaults.monotype_class, count, &error);
+ res = mono_array_new_checked (domain, mono_defaults.runtimetype_class, count, &error);
if (mono_error_set_pending_exception (&error))
return NULL;
for (i = 0; i < count; i++) {
}
ICALL_EXPORT MonoReflectionMethod*
-ves_icall_MonoType_GetCorrespondingInflatedMethod (MonoReflectionType *type,
+ves_icall_RuntimeType_GetCorrespondingInflatedMethod (MonoReflectionType *type,
MonoReflectionMethod* generic)
{
MonoDomain *domain;
}
ICALL_EXPORT MonoReflectionMethod *
-ves_icall_MonoType_get_DeclaringMethod (MonoReflectionType *ref_type)
+ves_icall_RuntimeType_get_DeclaringMethod (MonoReflectionType *ref_type)
{
MonoMethod *method;
MonoType *type = ref_type->type;
}
name = mono_array_get (params, MonoString *, 1);
- str = mono_string_to_utf8 (name);
+ str = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
do {
MonoClassField* field = mono_class_get_field_from_name (k, str);
}
name = mono_array_get (params, MonoString *, 1);
- str = mono_string_to_utf8 (name);
+ str = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
do {
MonoClassField* field = mono_class_get_field_from_name (k, str);
};
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetFields_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetFields_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
{
MonoError error;
MonoDomain *domain;
if (name != NULL) {
if (utf8_name == NULL) {
- utf8_name = mono_string_to_utf8 (name);
+ utf8_name = mono_string_to_utf8_checked (name, &error);
+ if (!is_ok (&error))
+ goto fail;
compare_func = (bflags & BFLAGS_IgnoreCase) ? mono_utf8_strcasecmp : strcmp;
}
}
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetMethodsByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetMethodsByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
{
static MonoClass *MethodInfo_array;
MonoError error;
return res;
}
- if (name)
- mname = mono_string_to_utf8 (name);
+ if (name) {
+ mname = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
+ }
method_array = mono_class_get_methods_by_name (klass, mname, bflags, ignore_case, FALSE, &ex);
g_free ((char*)mname);
}
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetConstructors_internal (MonoReflectionType *type, guint32 bflags, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetConstructors_internal (MonoReflectionType *type, guint32 bflags, MonoReflectionType *reftype)
{
MonoDomain *domain;
MonoClass *startklass, *klass, *refklass;
}
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetPropertiesByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetPropertiesByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
{
MonoError error;
MonoDomain *domain;
klass = startklass = mono_class_from_mono_type (type->type);
if (name != NULL) {
- propname = mono_string_to_utf8 (name);
+ propname = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
compare_func = (ignore_case) ? mono_utf8_strcasecmp : strcmp;
}
}
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetEvents_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetEvents_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
{
MonoError error;
MonoDomain *domain;
if (name != NULL) {
if (utf8_name == NULL) {
- utf8_name = mono_string_to_utf8 (name);
+ utf8_name = mono_string_to_utf8_checked (name, &error);
+ if (!is_ok (&error))
+ goto failure;
compare_func = (bflags & BFLAGS_IgnoreCase) ? mono_utf8_strcasecmp : strcmp;
}
}
ICALL_EXPORT MonoArray*
-ves_icall_Type_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint32 bflags)
+ves_icall_RuntimeType_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint32 bflags)
{
MonoError error;
MonoReflectionType *rt;
domain = ((MonoObject *)type)->vtable->domain;
if (type->type->byref) {
- MonoArray *result = mono_array_new_cached (domain, mono_defaults.monotype_class, 0, &error);
+ MonoArray *result = mono_array_new_cached (domain, mono_defaults.runtimetype_class, 0, &error);
mono_error_set_pending_exception (&error);
return result;
}
if (name != NULL) {
if (str == NULL) {
- str = mono_string_to_utf8 (name);
+ str = mono_string_to_utf8_checked (name, &error);
+ if (!is_ok (&error))
+ goto leave;
mono_identifier_unescape_type_name_chars (str);
}
mono_ptr_array_append (tmp_array, (MonoObject*) rt);
}
- res = mono_array_new_cached (domain, mono_defaults.monotype_class, mono_ptr_array_size (tmp_array), &error);
+ res = mono_array_new_cached (domain, mono_defaults.runtimetype_class, mono_ptr_array_size (tmp_array), &error);
if (!is_ok (&error))
goto leave;
/* On MS.NET, this does not fire a TypeResolve event */
type_resolve = TRUE;
- str = mono_string_to_utf8 (name);
+ str = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
/*g_print ("requested type %s in %s\n", str, assembly->assembly->aname.name);*/
if (!mono_reflection_parse_type (str, &info)) {
g_free (str);
MonoImageOpenStatus status;
MonoReflectionAssembly* result = NULL;
- name = mono_string_to_utf8 (mname);
+ name = mono_string_to_utf8_checked (mname, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
res = mono_assembly_load_with_partial_name (name, &status);
g_free (name);
ves_icall_System_Reflection_Assembly_GetManifestResourceInternal (MonoReflectionAssembly *assembly, MonoString *name, gint32 *size, MonoReflectionModule **ref_module)
{
MonoError error;
- char *n = mono_string_to_utf8 (name);
MonoTableInfo *table = &assembly->assembly->image->tables [MONO_TABLE_MANIFESTRESOURCE];
guint32 i;
guint32 cols [MONO_MANIFEST_SIZE];
const char *val;
MonoImage *module;
+ char *n = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
+
for (i = 0; i < table->rows; ++i) {
mono_metadata_decode_row (table, i, cols, MONO_MANIFEST_SIZE);
val = mono_metadata_string_heap (assembly->assembly->image, cols [MONO_MANIFEST_NAME]);
const char *val;
char *n;
- n = mono_string_to_utf8 (name);
+ n = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
for (i = 0; i < table->rows; ++i) {
mono_metadata_decode_row (table, i, cols, MONO_MANIFEST_SIZE);
val = mono_metadata_string_heap (assembly->assembly->image, cols [MONO_MANIFEST_NAME]);
/* check hash if needed */
if (name) {
- n = mono_string_to_utf8 (name);
+ n = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
+
for (i = 0; i < table->rows; ++i) {
val = mono_metadata_string_heap (assembly->assembly->image, mono_metadata_decode_row_col (table, i, MONO_FILE_NAME));
if (strcmp (val, n) == 0) {
}
ICALL_EXPORT int
-vell_icall_MonoType_get_core_clr_security_level (MonoReflectionType *rfield)
+vell_icall_RuntimeType_get_core_clr_security_level (MonoReflectionType *rfield)
{
MonoError error;
MonoClass *klass = mono_class_from_mono_type (rfield->type);
MonoAssemblyName name;
char *dirname;
- filename = mono_string_to_utf8 (fname);
+ filename = mono_string_to_utf8_checked (fname, &error);
+ if (mono_error_set_pending_exception (&error))
+ return;
dirname = g_path_get_dirname (filename);
replace_shadow_path (mono_domain_get (), dirname, &filename);
} else {
count = tdef->rows - 1;
}
- res = mono_array_new_checked (domain, mono_defaults.monotype_class, count, error);
+ res = mono_array_new_checked (domain, mono_defaults.runtimetype_class, count, error);
return_val_if_nok (error, NULL);
*exceptions = mono_array_new_checked (domain, mono_defaults.exception_class, count, error);
return_val_if_nok (error, NULL);
len1 = mono_array_length (res);
len2 = mono_array_length (res2);
- res3 = mono_array_new_checked (domain, mono_defaults.monotype_class, len1 + len2, &error);
+ res3 = mono_array_new_checked (domain, mono_defaults.runtimetype_class, len1 + len2, &error);
if (mono_error_set_pending_exception (&error))
return NULL;
mono_array_memcpy_refs (res3, 0, res, 0, len1);
mono_array_memcpy_refs (res3, len1, res2, 0, len2);
res = res3;
- ex3 = mono_array_new_checked (domain, mono_defaults.monotype_class, len1 + len2, &error);
+ ex3 = mono_array_new_checked (domain, mono_defaults.runtimetype_class, len1 + len2, &error);
if (mono_error_set_pending_exception (&error))
return NULL;
mono_array_memcpy_refs (ex3, 0, exceptions, 0, len1);
gboolean is_token_defined;
aname.public_key = NULL;
- val = mono_string_to_utf8 (assname);
+ val = mono_string_to_utf8_checked (assname, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
+
if (!mono_assembly_name_parse_full (val, &aname, TRUE, &is_version_defined, &is_token_defined)) {
g_free ((guint8*) aname.public_key);
g_free (val);
int i;
if (!module->image) {
- MonoArray *arr = mono_array_new_checked (mono_object_domain (module), mono_defaults.monotype_class, 0, &error);
+ MonoArray *arr = mono_array_new_checked (mono_object_domain (module), mono_defaults.runtimetype_class, 0, &error);
mono_error_set_pending_exception (&error);
return arr;
} else {
MonoReflectionType *ret;
MonoClass *klass;
int isbyref = 0, rank;
- char *str = mono_string_to_utf8 (smodifiers);
char *p;
+ char *str = mono_string_to_utf8_checked (smodifiers, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
klass = mono_class_from_mono_type (tb->type.type);
p = str;
}
ICALL_EXPORT MonoReflectionType *
-ves_icall_Type_make_array_type (MonoReflectionType *type, int rank)
+ves_icall_RuntimeType_make_array_type (MonoReflectionType *type, int rank)
{
MonoError error;
MonoReflectionType *ret;
}
ICALL_EXPORT MonoReflectionType *
-ves_icall_Type_make_byref_type (MonoReflectionType *type)
+ves_icall_RuntimeType_make_byref_type (MonoReflectionType *type)
{
MonoError error;
MonoReflectionType *ret;
}
ICALL_EXPORT MonoReflectionType *
-ves_icall_Type_MakePointerType (MonoReflectionType *type)
+ves_icall_RuntimeType_MakePointerType (MonoReflectionType *type)
{
MonoError error;
MonoReflectionType *ret;
ICALL_EXPORT MonoString *
ves_icall_System_Environment_GetEnvironmentVariable (MonoString *name)
{
+ MonoError error;
const gchar *value;
gchar *utf8_name;
if (name == NULL)
return NULL;
- utf8_name = mono_string_to_utf8 (name); /* FIXME: this should be ascii */
+ utf8_name = mono_string_to_utf8_checked (name, &error); /* FIXME: this should be ascii */
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
value = g_getenv (utf8_name);
g_free (utf8_name);
g_free (utf16_name);
g_free (utf16_value);
#else
- utf8_name = mono_string_to_utf8 (name); /* FIXME: this should be ascii */
+ utf8_name = mono_string_to_utf8_checked (name, &error); /* FIXME: this should be ascii */
+ if (mono_error_set_pending_exception (&error))
+ return;
if ((value == NULL) || (mono_string_length (value) == 0) || (mono_string_chars (value)[0] == 0)) {
g_unsetenv (utf8_name);
return mcpath;
}
+/* this is an icall */
static MonoString *
get_bundled_app_config (void)
{
+ MonoError error;
const gchar *app_config;
MonoDomain *domain;
MonoString *file;
return NULL;
// Retrieve config file and remove the extension
- config_file_name = mono_string_to_utf8 (file);
+ config_file_name = mono_string_to_utf8_checked (file, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
config_file_path = mono_portability_find_file (config_file_name, TRUE);
if (!config_file_path)
config_file_path = config_file_name;
const CultureInfoEntry *ci;
char *n;
- n = mono_string_to_utf8 (name);
+ n = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
ne = (const CultureInfoNameEntry *)mono_binary_search (n, culture_name_entries, NUM_CULTURE_ENTRIES,
sizeof (CultureInfoNameEntry), culture_name_locator);
g_free (n);
const CultureInfoNameEntry *ne;
char *n;
- n = mono_string_to_utf8 (name);
+ n = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
ne = (const CultureInfoNameEntry *)mono_binary_search (n, culture_name_entries, NUM_CULTURE_ENTRIES,
sizeof (CultureInfoNameEntry), culture_name_locator);
ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name (MonoRegionInfo *this_obj,
MonoString *name)
{
+ MonoError error;
const RegionInfoNameEntry *ne;
char *n;
- n = mono_string_to_utf8 (name);
+ n = mono_string_to_utf8_checked (name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
ne = (const RegionInfoNameEntry *)mono_binary_search (n, region_name_entries, NUM_REGION_ENTRIES,
sizeof (RegionInfoNameEntry), region_name_locator);
return result;
}
+static char*
+ves_icall_mono_string_to_utf8 (MonoString *str)
+{
+ MonoError error;
+ char *result = mono_string_to_utf8_checked (str, &error);
+ mono_error_set_pending_exception (&error);
+ return result;
+}
+
void
mono_marshal_init (void)
{
register_icall (mono_string_from_byvalwstr, "mono_string_from_byvalwstr", "obj ptr int", FALSE);
register_icall (mono_string_new_wrapper, "mono_string_new_wrapper", "obj ptr", FALSE);
register_icall (mono_string_new_len_wrapper, "mono_string_new_len_wrapper", "obj ptr int", FALSE);
- register_icall (mono_string_to_utf8, "mono_string_to_utf8", "ptr obj", FALSE);
+ register_icall (ves_icall_mono_string_to_utf8, "ves_icall_mono_string_to_utf8", "ptr obj", FALSE);
register_icall (mono_string_to_lpstr, "mono_string_to_lpstr", "ptr obj", FALSE);
register_icall (mono_string_to_ansibstr, "mono_string_to_ansibstr", "ptr object", FALSE);
register_icall (mono_string_builder_to_utf8, "mono_string_builder_to_utf8", "ptr object", FALSE);
return as;
}
#else
- return mono_string_to_utf8 (s);
+ MonoError error;
+ char *result = mono_string_to_utf8_checked (s, &error);
+ mono_error_set_pending_exception (&error);
+ return result;
#endif
}
void
mono_string_to_byvalstr (gpointer dst, MonoString *src, int size)
{
+ MonoError error;
char *s;
int len;
if (!src)
return;
- s = mono_string_to_utf8 (src);
+ s = mono_string_to_utf8_checked (src, &error);
+ if (mono_error_set_pending_exception (&error))
+ return;
len = MIN (size, strlen (s));
if (len >= size)
len--;
if (exc) {
if (((MonoException*)exc)->stack_trace) {
- char *strace = mono_string_to_utf8 (((MonoException*)exc)->stack_trace);
- char *tmp;
- tmp = g_strdup_printf ("%s\nException Rethrown at:\n", strace);
- g_free (strace);
- MONO_OBJECT_SETREF (((MonoException*)exc), stack_trace, mono_string_new (domain, tmp));
- g_free (tmp);
+ MonoError inner_error;
+ char *strace = mono_string_to_utf8_checked (((MonoException*)exc)->stack_trace, &inner_error);
+ if (is_ok (&inner_error)) {
+ char *tmp;
+ tmp = g_strdup_printf ("%s\nException Rethrown at:\n", strace);
+ g_free (strace);
+ MONO_OBJECT_SETREF (((MonoException*)exc), stack_trace, mono_string_new (domain, tmp));
+ g_free (tmp);
+ } else
+ mono_error_cleanup (&inner_error); /* no stack trace, but at least throw the original exception */
}
mono_set_pending_exception ((MonoException*)exc);
}
int
ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType *type, MonoString *field_name)
{
+ MonoError error;
MonoMarshalType *info;
MonoClass *klass;
char *fname;
MONO_CHECK_ARG_NULL (type, 0);
MONO_CHECK_ARG_NULL (field_name, 0);
- fname = mono_string_to_utf8 (field_name);
+ fname = mono_string_to_utf8_checked (field_name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return 0;
klass = mono_class_from_mono_type (type->type);
if (!mono_class_init (klass)) {
mono_set_pending_exception (mono_class_get_exception_for_failure (klass));
gpointer
ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi (MonoString *string)
{
+ MonoError error;
#ifdef HOST_WIN32
char* tres, *ret;
size_t len;
- tres = mono_string_to_utf8 (string);
+ tres = mono_string_to_utf8_checked (string, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
if (!tres)
return tres;
return ret;
#else
- return mono_string_to_utf8 (string);
+ char *ret = mono_string_to_utf8_checked (string, &error);
+ mono_error_set_pending_exception (&error);
+ return ret;
#endif
}
}
static int
-id_from_string (MonoString *instance, gboolean is_process)
+id_from_string (const gchar *id_str, gboolean is_process)
{
int id = -1;
- if (mono_string_length (instance)) {
- char *id_str = mono_string_to_utf8 (instance);
+ if (strcmp("", id_str) != 0) {
char *end;
id = strtol (id_str, &end, 0);
if (end == id_str && !is_process)
id = -1;
- g_free (id_str);
}
return id;
}
}
static void*
-cpu_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+cpu_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
{
int id = id_from_string (instance, FALSE) << 5;
const CounterDesc *cdesc;
}
static void*
-network_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+network_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
{
const CounterDesc *cdesc;
NetworkVtableArg *narg;
*custom = FALSE;
if ((cdesc = get_counter_in_category (&predef_categories [CATEGORY_NETWORK], counter))) {
- instance_name = mono_string_to_utf8 (instance);
+ instance_name = g_strdup (instance);
narg = g_new0 (NetworkVtableArg, 1);
narg->id = cdesc->id;
narg->name = instance_name;
}
static void*
-process_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+process_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
{
int id = id_from_string (instance, TRUE) << 5;
const CounterDesc *cdesc;
}
static void*
-mono_mem_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+mono_mem_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
{
const CounterDesc *cdesc;
*custom = FALSE;
}
static ImplVtable*
-predef_vtable (void *arg, MonoString *instance)
+predef_vtable (void *arg, const gchar *pids)
{
MonoSharedArea *area;
PredefVtable *vtable;
- char *pids = mono_string_to_utf8 (instance);
int pid;
pid = atoi (pids);
- g_free (pids);
area = load_sarea_for_pid (pid);
if (!area)
return NULL;
}
static void*
-predef_writable_get_impl (int cat, MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+predef_writable_get_impl (int cat, MonoString* counter, const gchar *instance, int *type, MonoBoolean *custom)
{
const CounterDesc *cdesc;
*custom = TRUE;
if ((cdesc = get_counter_in_category (&predef_categories [cat], counter))) {
*type = cdesc->type;
- if (instance == NULL || mono_string_compare_ascii (instance, "") == 0)
+ if (instance == NULL || strcmp (instance, "") == 0)
return create_vtable (GINT_TO_POINTER ((cdesc->id << 16) | cat), predef_writable_counter, predef_writable_update);
else
return predef_vtable (GINT_TO_POINTER ((cdesc->id << 16) | cat), instance);
}
static void*
-custom_get_impl (SharedCategory *cat, MonoString* counter, MonoString* instance, int *type)
+custom_get_impl (SharedCategory *cat, MonoString *counter, MonoString* instance, int *type, MonoError *error)
{
SharedCounter *scounter;
SharedInstance* inst;
char *name;
+ mono_error_init (error);
scounter = find_custom_counter (cat, counter);
if (!scounter)
return NULL;
+ name = mono_string_to_utf8_checked (counter, error);
+ return_val_if_nok (error, NULL);
*type = simple_type_to_type [scounter->type];
- name = mono_string_to_utf8 (counter);
inst = custom_get_instance (cat, scounter, name);
g_free (name);
if (!inst)
mono_perfcounter_get_impl (MonoString* category, MonoString* counter, MonoString* instance,
MonoString* machine, int *type, MonoBoolean *custom)
{
+ MonoError error;
const CategoryDesc *cdesc;
+ void *result = NULL;
/* no support for counters on other machines */
if (mono_string_compare_ascii (machine, "."))
return NULL;
if (!scat)
return NULL;
*custom = TRUE;
- return custom_get_impl (scat, counter, instance, type);
+ result = custom_get_impl (scat, counter, instance, type, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
+ return result;
}
+ gchar *c_instance = mono_string_to_utf8_checked (instance, &error);
+ if (mono_error_set_pending_exception (&error))
+ return NULL;
switch (cdesc->id) {
case CATEGORY_CPU:
- return cpu_get_impl (counter, instance, type, custom);
+ result = cpu_get_impl (counter, c_instance, type, custom);
+ break;
case CATEGORY_PROC:
- return process_get_impl (counter, instance, type, custom);
+ result = process_get_impl (counter, c_instance, type, custom);
+ break;
case CATEGORY_MONO_MEM:
- return mono_mem_get_impl (counter, instance, type, custom);
+ result = mono_mem_get_impl (counter, c_instance, type, custom);
+ break;
case CATEGORY_NETWORK:
- return network_get_impl (counter, instance, type, custom);
+ result = network_get_impl (counter, c_instance, type, custom);
+ break;
case CATEGORY_JIT:
case CATEGORY_EXC:
case CATEGORY_GC:
case CATEGORY_SECURITY:
case CATEGORY_ASPNET:
case CATEGORY_THREADPOOL:
- return predef_writable_get_impl (cdesc->id, counter, instance, type, custom);
+ result = predef_writable_get_impl (cdesc->id, counter, c_instance, type, custom);
+ break;
}
- return NULL;
+ g_free (c_instance);
+ return result;
}
MonoBoolean
SharedCategory *cat;
/* FIXME: ensure there isn't a category created already */
- mono_error_init (&error);
name = mono_string_to_utf8_checked (category, &error);
if (!mono_error_ok (&error))
goto failure;
int
mono_perfcounter_instance_exists (MonoString *instance, MonoString *category, MonoString *machine)
{
+ MonoError error;
const CategoryDesc *cdesc;
SharedInstance *sinst;
char *name;
scat = find_custom_category (category);
if (!scat)
return FALSE;
- name = mono_string_to_utf8 (instance);
+ name = mono_string_to_utf8_checked (instance, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
sinst = find_custom_instance (scat, name);
g_free (name);
if (sinst)
extern MonoBoolean ves_icall_System_Net_NetworkInformation_MacOsIPInterfaceProperties_ParseRouteInfo_internal(MonoString *iface, MonoArray **gw_addr_list)
{
+ MonoError error;
size_t needed;
in_addr_t in;
int mib[6];
MonoDomain *domain = mono_domain_get ();
- ifacename = mono_string_to_utf8(iface);
+ ifacename = mono_string_to_utf8_checked(iface, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
+
if ((ifindex = if_nametoindex(ifacename)) == 0)
return FALSE;
g_free(ifacename);
MonoType *type;
};
+/* This corresponds to System.RuntimeType */
typedef struct {
MonoReflectionType type;
MonoObject *type_info;
MonoException *exc_to_store = mono_error_convert_to_exception (error);
/* What we really want to do here is clone the error object and store one copy in the
* domain's exception hash and use the other one to error out here. */
+ mono_error_init (error);
mono_error_set_exception_instance (error, exc_to_store);
/*
* Store the exception object so it could be thrown on subsequent
* re-acquire them and check if another thread has created the vtable in the meantime.
*/
/* Special case System.MonoType to avoid infinite recursion */
- if (klass != mono_defaults.monotype_class) {
+ if (klass != mono_defaults.runtimetype_class) {
vt->type = mono_type_get_object_checked (domain, &klass->byval_arg, error);
if (!is_ok (error)) {
mono_domain_unlock (domain);
return NULL;
}
- if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.monotype_class)
+ if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.runtimetype_class)
/* This is unregistered in
unregister_vtable_reflection_type() in
domain.c. */
klass->runtime_info = runtime_info;
}
- if (klass == mono_defaults.monotype_class) {
+ if (klass == mono_defaults.runtimetype_class) {
vt->type = mono_type_get_object_checked (domain, &klass->byval_arg, error);
if (!is_ok (error)) {
mono_domain_unlock (domain);
return NULL;
}
- if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.monotype_class)
+ if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.runtimetype_class)
/* This is unregistered in
unregister_vtable_reflection_type() in
domain.c. */
MonoError error;
char *result = mono_string_to_utf8_checked (s, &error);
- if (!mono_error_ok (&error))
- mono_error_raise_exception (&error);
+ if (!is_ok (&error)) {
+ mono_error_cleanup (&error);
+ return NULL;
+ }
return result;
}
MONO_API MonoString*
mono_string_new_utf32 (MonoDomain *domain, const mono_unichar4 *text, int32_t len);
+MONO_RT_EXTERNAL_ONLY
MONO_API char *
mono_string_to_utf8 (MonoString *string_obj);
MonoBoolean
ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoProcessStartInfo *proc_start_info, HANDLE stdin_handle, HANDLE stdout_handle, HANDLE stderr_handle, MonoProcInfo *process_info)
{
+ MonoError error G_GNUC_UNUSED;
gboolean ret;
gunichar2 *dir;
STARTUPINFO startinfo={0};
free_shell_path = FALSE;
if (cmd) {
gchar *newcmd, *tmp;
- tmp = mono_string_to_utf8 (cmd);
+ tmp = mono_string_to_utf8_checked (cmd, &error);
+ if (mono_error_set_pending_exception (&error)) {
+ g_free (spath);
+ return NULL;
+ }
newcmd = g_strdup_printf ("%s %s", spath, tmp);
cmd = mono_string_new_wrapper (newcmd);
g_free (tmp);
}
static guint32
-string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str)
+string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str, MonoError *error)
{
MONO_REQ_GC_UNSAFE_MODE;
- char *name = mono_string_to_utf8 (str);
+ mono_error_init (error);
+ char *name = mono_string_to_utf8_checked (str, error);
+ return_val_if_nok (error, -1);
guint32 idx;
idx = string_heap_insert (sh, name);
g_free (name);
} else {
code = mb->code;
if (code == NULL){
- char *name = mono_string_to_utf8 (mb->name);
+ MonoError inner_error;
+ char *name = mono_string_to_utf8_checked (mb->name, &inner_error);
+ if (!is_ok (&inner_error)) {
+ name = g_strdup ("");
+ mono_error_cleanup (&inner_error);
+ }
char *str = g_strdup_printf ("Method %s does not have any IL associated", name);
mono_error_set_argument (error, NULL, "a method does not have any IL associated");
g_free (str);
*mb->table_idx = table->next_idx ++;
g_hash_table_insert (assembly->method_to_table_idx, mb->mhandle, GUINT_TO_POINTER ((*mb->table_idx)));
values = table->values + *mb->table_idx * MONO_METHOD_SIZE;
- values [MONO_METHOD_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name);
+ values [MONO_METHOD_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name, error);
+ return_val_if_nok (error, FALSE);
values [MONO_METHOD_FLAGS] = mb->attrs;
values [MONO_METHOD_IMPLFLAGS] = mb->iattrs;
values [MONO_METHOD_SIGNATURE] = method_builder_encode_signature (assembly, mb, error);
values [MONO_PARAM_FLAGS] = pb->attrs;
values [MONO_PARAM_SEQUENCE] = i;
if (pb->name != NULL) {
- values [MONO_PARAM_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name);
+ values [MONO_PARAM_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name, error);
+ return_val_if_nok (error, FALSE);
} else {
values [MONO_PARAM_NAME] = 0;
}
values [MONO_IMPLMAP_FLAGS] = (mb->native_cc << 8) | ncharset | extra_flags;
values [MONO_IMPLMAP_MEMBER] = (mb->table_idx << 1) | 1; /* memberforwarded: method */
- if (mb->dllentry)
- values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->dllentry);
- else
- values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name);
- moduleref = string_heap_insert_mstring (&assembly->sheap, mb->dll);
+ if (mb->dllentry) {
+ values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->dllentry, error);
+ return_val_if_nok (error, FALSE);
+ } else {
+ values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name, error);
+ return_val_if_nok (error, FALSE);
+ }
+ moduleref = string_heap_insert_mstring (&assembly->sheap, mb->dll, error);
+ return_val_if_nok (error, FALSE);
if (!(values [MONO_IMPLMAP_SCOPE] = find_index_in_table (assembly, MONO_TABLE_MODULEREF, MONO_MODULEREF_NAME, moduleref))) {
table = &assembly->tables [MONO_TABLE_MODULEREF];
table->rows ++;
break;
case MONO_NATIVE_CUSTOM:
if (minfo->guid) {
- str = mono_string_to_utf8 (minfo->guid);
+ str = mono_string_to_utf8_checked (minfo->guid, error);
+ if (!is_ok (error)) {
+ sigbuffer_free (&buf);
+ return 0;
+ }
len = strlen (str);
sigbuffer_add_value (&buf, len);
sigbuffer_add_mem (&buf, str, len);
return 0;
}
str = type_get_fully_qualified_name (marshaltype);
- } else
- str = mono_string_to_utf8 (minfo->marshaltype);
+ } else {
+ str = mono_string_to_utf8_checked (minfo->marshaltype, error);
+ if (!is_ok (error)) {
+ sigbuffer_free (&buf);
+ return 0;
+ }
+ }
len = strlen (str);
sigbuffer_add_value (&buf, len);
sigbuffer_add_mem (&buf, str, len);
sigbuffer_add_value (&buf, 0);
}
if (minfo->mcookie) {
- str = mono_string_to_utf8 (minfo->mcookie);
+ str = mono_string_to_utf8_checked (minfo->mcookie, error);
+ if (!is_ok (error)) {
+ sigbuffer_free (&buf);
+ return 0;
+ }
len = strlen (str);
sigbuffer_add_value (&buf, len);
sigbuffer_add_mem (&buf, str, len);
fb->table_idx = table->next_idx ++;
g_hash_table_insert (assembly->field_to_table_idx, fb->handle, GUINT_TO_POINTER (fb->table_idx));
values = table->values + fb->table_idx * MONO_FIELD_SIZE;
- values [MONO_FIELD_NAME] = string_heap_insert_mstring (&assembly->sheap, fb->name);
+ values [MONO_FIELD_NAME] = string_heap_insert_mstring (&assembly->sheap, fb->name, error);
+ return_if_nok (error);
values [MONO_FIELD_FLAGS] = fb->attrs;
values [MONO_FIELD_SIGNATURE] = field_encode_signature (assembly, fb, error);
return_if_nok (error);
table = &assembly->tables [MONO_TABLE_PROPERTY];
pb->table_idx = table->next_idx ++;
values = table->values + pb->table_idx * MONO_PROPERTY_SIZE;
- values [MONO_PROPERTY_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name);
+ values [MONO_PROPERTY_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name, error);
+ return_if_nok (error);
values [MONO_PROPERTY_FLAGS] = pb->attrs;
values [MONO_PROPERTY_TYPE] = property_encode_signature (assembly, pb, error);
return_if_nok (error);
table = &assembly->tables [MONO_TABLE_EVENT];
eb->table_idx = table->next_idx ++;
values = table->values + eb->table_idx * MONO_EVENT_SIZE;
- values [MONO_EVENT_NAME] = string_heap_insert_mstring (&assembly->sheap, eb->name);
+ values [MONO_EVENT_NAME] = string_heap_insert_mstring (&assembly->sheap, eb->name, error);
+ return_if_nok (error);
values [MONO_EVENT_FLAGS] = eb->attrs;
MonoType *ebtype = mono_reflection_type_get_handle (eb->type, error);
return_if_nok (error);
parent = mono_image_typedef_or_ref (assembly, t);
}
- char *name = mono_string_to_utf8 (method->name);
+ char *name = mono_string_to_utf8_checked (method->name, error);
+ return_val_if_nok (error, 0);
token = mono_image_add_memberef_row (assembly, parent, name, sig);
g_free (name);
parent = mono_image_typedef_or_ref (assembly, type);
}
- name = mono_string_to_utf8 (rmb.name);
+ name = mono_string_to_utf8_checked (rmb.name, error);
+ return_val_if_nok (error, 0);
sig = method_builder_encode_signature (assembly, &rmb, error);
return_val_if_nok (error, 0);
guint32 sig_token = field_encode_signature (assembly, fb, error);
return_val_if_nok (error, 0);
- name = mono_string_to_utf8 (fb->name);
+ name = mono_string_to_utf8_checked (fb->name, error);
+ return_val_if_nok (error, 0);
token = mono_image_get_memberref_token (assembly, &klass->byval_arg, name, sig_token);
g_free (name);
} else if (is_sr_mono_field (mono_object_class (f->fb))) {
sig = method_builder_encode_signature (assembly, &rmb, error);
return_val_if_nok (error, 0);
- name = mono_string_to_utf8 (rmb.name);
+ name = mono_string_to_utf8_checked (rmb.name, error);
+ return_val_if_nok (error, 0);
token = mono_image_get_memberref_token (assembly, &klass->byval_arg, name, sig);
g_free (name);
sig = method_builder_encode_signature (assembly, &rmb, error);
return_val_if_nok (error, 0);
- name = mono_string_to_utf8 (rmb.name);
+ name = mono_string_to_utf8_checked (rmb.name, error);
+ return_val_if_nok (error, 0);
token = mono_image_get_memberref_token (assembly, &klass->byval_arg, name, sig);
g_free (name);
table = &assembly->tables [MONO_TABLE_MEMBERREF];
- name = mono_string_to_utf8 (fb->name);
+ name = mono_string_to_utf8_checked (fb->name, error);
+ return_val_if_nok (error, 0);
if (assembly->save) {
alloc_table (table, table->rows + 1);
goto fail;
}
- name = mono_string_to_utf8 (m->name);
+ name = mono_string_to_utf8_checked (m->name, error);
+ if (!is_ok (error))
+ goto fail;
for (tmp = assembly->array_methods; tmp; tmp = tmp->next) {
am = (ArrayMethod *)tmp->data;
if (strcmp (name, am->name) == 0 &&
table = &assembly->tables [MONO_TABLE_TYPEDEF];
values = table->values + tb->table_idx * MONO_TYPEDEF_SIZE;
values [MONO_TYPEDEF_FLAGS] = tb->attrs;
- n = mono_string_to_utf8 (tb->name);
+ n = mono_string_to_utf8_checked (tb->name, error);
+ return_val_if_nok (error, FALSE);
if (strcmp (n, "Object") == 0)
is_object++;
values [MONO_TYPEDEF_NAME] = string_heap_insert (&assembly->sheap, n);
g_free (n);
- n = mono_string_to_utf8 (tb->nspace);
+ n = mono_string_to_utf8_checked (tb->nspace, error);
+ return_val_if_nok (error, FALSE);
if (strcmp (n, "System") == 0)
is_system++;
values [MONO_TYPEDEF_NAMESPACE] = string_heap_insert (&assembly->sheap, n);
return TRUE;
}
-static void
-mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, MonoDynamicImage *assembly)
+static gboolean
+mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, MonoDynamicImage *assembly, MonoError *error)
{
MonoDynamicTable *table;
guint32 *values;
char *b = blob_size;
char *dir, *path;
+ mono_error_init (error);
+
table = &assembly->tables [MONO_TABLE_FILE];
table->rows++;
alloc_table (table, table->rows);
values [MONO_FILE_NAME] = string_heap_insert (&assembly->sheap, module->image->module_name);
if (image_is_dynamic (module->image)) {
/* This depends on the fact that the main module is emitted last */
- dir = mono_string_to_utf8 (((MonoReflectionModuleBuilder*)module)->assemblyb->dir);
+ dir = mono_string_to_utf8_checked (((MonoReflectionModuleBuilder*)module)->assemblyb->dir, error);
+ return_val_if_nok (error, FALSE);
path = g_strdup_printf ("%s%c%s", dir, G_DIR_SEPARATOR, module->image->module_name);
} else {
dir = NULL;
values [MONO_FILE_HASH_VALUE] = mono_image_add_stream_data (&assembly->blob, blob_size, b-blob_size);
mono_image_add_stream_data (&assembly->blob, (char*)hash, 20);
table->next_idx ++;
+ return TRUE;
}
static void
-mono_image_fill_module_table (MonoDomain *domain, MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly)
+mono_image_fill_module_table (MonoDomain *domain, MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoError *error)
{
MonoDynamicTable *table;
int i;
+ mono_error_init (error);
+
table = &assembly->tables [MONO_TABLE_MODULE];
mb->table_idx = table->next_idx ++;
- table->values [mb->table_idx * MONO_MODULE_SIZE + MONO_MODULE_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->module.name);
+ table->values [mb->table_idx * MONO_MODULE_SIZE + MONO_MODULE_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->module.name, error);
+ return_if_nok (error);
i = mono_image_add_stream_data (&assembly->guid, mono_array_addr (mb->guid, char, 0), 16);
i /= 16;
++i;
}
}
-static void
-assembly_add_resource_manifest (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc, guint32 implementation)
+static gboolean
+assembly_add_resource_manifest (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc, guint32 implementation, MonoError *error)
{
MonoDynamicTable *table;
guint32 *values;
+ mono_error_init (error);
+
table = &assembly->tables [MONO_TABLE_MANIFESTRESOURCE];
table->rows++;
alloc_table (table, table->rows);
values = table->values + table->next_idx * MONO_MANIFEST_SIZE;
values [MONO_MANIFEST_OFFSET] = rsrc->offset;
values [MONO_MANIFEST_FLAGS] = rsrc->attrs;
- values [MONO_MANIFEST_NAME] = string_heap_insert_mstring (&assembly->sheap, rsrc->name);
+ values [MONO_MANIFEST_NAME] = string_heap_insert_mstring (&assembly->sheap, rsrc->name, error);
+ return_val_if_nok (error, FALSE);
values [MONO_MANIFEST_IMPLEMENTATION] = implementation;
table->next_idx++;
+ return TRUE;
}
-static void
-assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc)
+static gboolean
+assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc, MonoError *error)
{
MonoDynamicTable *table;
guint32 *values;
char *name, *sname;
guint32 idx, offset;
+ mono_error_init (error);
+
if (rsrc->filename) {
- name = mono_string_to_utf8 (rsrc->filename);
+ name = mono_string_to_utf8_checked (rsrc->filename, error);
+ return_val_if_nok (error, FALSE);
sname = g_path_get_basename (name);
table = &assembly->tables [MONO_TABLE_FILE];
* the main module, but that needs to reference the FILE table
* which isn't emitted yet.
*/
- return;
+ return TRUE;
else
idx = 0;
}
- assembly_add_resource_manifest (mb, assembly, rsrc, idx);
+ return assembly_add_resource_manifest (mb, assembly, rsrc, idx, error);
}
-static void
-set_version_from_string (MonoString *version, guint32 *values)
+static gboolean
+set_version_from_string (MonoString *version, guint32 *values, MonoError *error)
{
gchar *ver, *p, *str;
guint32 i;
+ mono_error_init (error);
+
values [MONO_ASSEMBLY_MAJOR_VERSION] = 0;
values [MONO_ASSEMBLY_MINOR_VERSION] = 0;
values [MONO_ASSEMBLY_REV_NUMBER] = 0;
values [MONO_ASSEMBLY_BUILD_NUMBER] = 0;
if (!version)
- return;
- ver = str = mono_string_to_utf8 (version);
+ return TRUE;
+ ver = str = mono_string_to_utf8_checked (version, error);
+ return_val_if_nok (error, FALSE);
for (i = 0; i < 4; ++i) {
values [MONO_ASSEMBLY_MAJOR_VERSION + i] = strtol (ver, &p, 10);
switch (*p) {
ver = p;
}
g_free (str);
+ return TRUE;
}
static guint32
return token;
}
-static void
+static gboolean
mono_image_emit_manifest (MonoReflectionModuleBuilder *moduleb, MonoError *error)
{
MonoDynamicTable *table;
alloc_table (table, 1);
values = table->values + MONO_ASSEMBLY_SIZE;
values [MONO_ASSEMBLY_HASH_ALG] = assemblyb->algid? assemblyb->algid: ASSEMBLY_HASH_SHA1;
- values [MONO_ASSEMBLY_NAME] = string_heap_insert_mstring (&assembly->sheap, assemblyb->name);
+ values [MONO_ASSEMBLY_NAME] = string_heap_insert_mstring (&assembly->sheap, assemblyb->name, error);
+ return_val_if_nok (error, FALSE);
if (assemblyb->culture) {
- values [MONO_ASSEMBLY_CULTURE] = string_heap_insert_mstring (&assembly->sheap, assemblyb->culture);
+ values [MONO_ASSEMBLY_CULTURE] = string_heap_insert_mstring (&assembly->sheap, assemblyb->culture, error);
+ return_val_if_nok (error, FALSE);
} else {
values [MONO_ASSEMBLY_CULTURE] = string_heap_insert (&assembly->sheap, "");
}
values [MONO_ASSEMBLY_PUBLIC_KEY] = load_public_key (assemblyb->public_key, assembly);
values [MONO_ASSEMBLY_FLAGS] = assemblyb->flags;
- set_version_from_string (assemblyb->version, values);
+ if (!set_version_from_string (assemblyb->version, values, error))
+ return FALSE;
/* Emit FILE + EXPORTED_TYPE table */
module_index = 0;
MonoReflectionModuleBuilder *file_module =
mono_array_get (assemblyb->modules, MonoReflectionModuleBuilder*, i);
if (file_module != moduleb) {
- mono_image_fill_file_table (domain, (MonoReflectionModule*)file_module, assembly);
+ if (!mono_image_fill_file_table (domain, (MonoReflectionModule*)file_module, assembly, error))
+ return FALSE;
module_index ++;
if (file_module->types) {
for (j = 0; j < file_module->num_types; ++j) {
MonoReflectionTypeBuilder *tb = mono_array_get (file_module->types, MonoReflectionTypeBuilder*, j);
mono_image_fill_export_table (domain, tb, module_index, 0, assembly, error);
- return_if_nok (error);
+ return_val_if_nok (error, FALSE);
}
}
}
for (i = 0; i < mono_array_length (assemblyb->loaded_modules); ++i) {
MonoReflectionModule *file_module =
mono_array_get (assemblyb->loaded_modules, MonoReflectionModule*, i);
- mono_image_fill_file_table (domain, file_module, assembly);
+ if (!mono_image_fill_file_table (domain, file_module, assembly, error))
+ return FALSE;
module_index ++;
mono_image_fill_export_table_from_module (domain, file_module, module_index, assembly);
}
int len = mono_array_length (file_module->resources);
for (j = 0; j < len; ++j) {
MonoReflectionResource* res = (MonoReflectionResource*)mono_array_addr (file_module->resources, MonoReflectionResource, j);
- assembly_add_resource_manifest (file_module, assembly, res, MONO_IMPLEMENTATION_FILE | (module_index << MONO_IMPLEMENTATION_BITS));
+ if (!assembly_add_resource_manifest (file_module, assembly, res, MONO_IMPLEMENTATION_FILE | (module_index << MONO_IMPLEMENTATION_BITS), error))
+ return FALSE;
}
}
}
- }
+ }
+ return TRUE;
}
#ifndef DISABLE_REFLECTION_EMIT_SAVE
table = &assembly->tables [MONO_TABLE_MODULE];
alloc_table (table, 1);
- mono_image_fill_module_table (domain, moduleb, assembly);
+ mono_image_fill_module_table (domain, moduleb, assembly, error);
+ if (!is_ok (error))
+ goto leave;
/* Collect all types into a list sorted by their table_idx */
mono_ptr_array_init (types, moduleb->num_types, MONO_ROOT_SOURCE_REFLECTION, "dynamic module types list");
*/
for (i = 0; i < mono_ptr_array_size (types); ++i) {
MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)mono_ptr_array_get (types, i);
- string_heap_insert_mstring (&assembly->sheap, tb->nspace);
+ string_heap_insert_mstring (&assembly->sheap, tb->nspace, error);
+ if (!is_ok (error))
+ goto leave_types;
}
for (i = 0; i < mono_ptr_array_size (types); ++i) {
MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)mono_ptr_array_get (types, i);
- string_heap_insert_mstring (&assembly->sheap, tb->name);
+ string_heap_insert_mstring (&assembly->sheap, tb->name, error);
+ if (!is_ok (error))
+ goto leave_types;
}
for (i = 0; i < mono_ptr_array_size (types); ++i) {
parent = mono_metadata_token_index (parent) << MONO_MEMBERREF_PARENT_BITS;
parent |= MONO_MEMBERREF_PARENT_METHODDEF;
- char *name = mono_string_to_utf8 (rmb.name);
+ char *name = mono_string_to_utf8_checked (rmb.name, error);
+ if (!is_ok (error)) goto fail;
token = mono_image_get_varargs_method_token (
assembly, parent, name, sig_token);
g_free (name);
return_val_if_nok (error, 0);
token = mono_metadata_token_from_dor (mono_image_typedef_or_ref (assembly, type));
}
- } else if (strcmp (klass->name, "MonoType") == 0) {
+ } else if (strcmp (klass->name, "RuntimeType") == 0) {
MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType *)obj, error);
return_val_if_nok (error, 0);
MonoClass *mc = mono_class_from_mono_type (type);
void
mono_image_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
{
+ MonoError error;
MonoDynamicAssembly *assembly;
MonoDynamicImage *image;
MonoDomain *domain = mono_object_domain (assemblyb);
assembly->assembly.dynamic = TRUE;
assembly->assembly.corlib_internal = assemblyb->corlib_internal;
assemblyb->assembly.assembly = (MonoAssembly*)assembly;
- assembly->assembly.basedir = mono_string_to_utf8 (assemblyb->dir);
- if (assemblyb->culture)
- assembly->assembly.aname.culture = mono_string_to_utf8 (assemblyb->culture);
- else
+ assembly->assembly.basedir = mono_string_to_utf8_checked (assemblyb->dir, &error);
+ if (mono_error_set_pending_exception (&error))
+ return;
+ if (assemblyb->culture) {
+ assembly->assembly.aname.culture = mono_string_to_utf8_checked (assemblyb->culture, &error);
+ if (mono_error_set_pending_exception (&error))
+ return;
+ } else
assembly->assembly.aname.culture = g_strdup ("");
if (assemblyb->version) {
- char *vstr = mono_string_to_utf8 (assemblyb->version);
+ char *vstr = mono_string_to_utf8_checked (assemblyb->version, &error);
+ if (mono_error_set_pending_exception (&error))
+ return;
char **version = g_strsplit (vstr, ".", 4);
char **parts = version;
assembly->assembly.aname.major = atoi (*parts++);
assembly->save = assemblyb->access != 1;
assembly->domain = domain;
- image = create_dynamic_mono_image (assembly, mono_string_to_utf8 (assemblyb->name), g_strdup ("RefEmit_YouForgotToDefineAModule"));
+ char *assembly_name = mono_string_to_utf8_checked (assemblyb->name, &error);
+ if (mono_error_set_pending_exception (&error))
+ return;
+ image = create_dynamic_mono_image (assembly, assembly_name, g_strdup ("RefEmit_YouForgotToDefineAModule"));
image->initial_image = TRUE;
assembly->assembly.aname.name = image->image.name;
assembly->assembly.image = &image->image;
if (mb->is_main && assemblyb->resources) {
int len = mono_array_length (assemblyb->resources);
- for (i = 0; i < len; ++i)
- assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (assemblyb->resources, MonoReflectionResource, i));
+ for (i = 0; i < len; ++i) {
+ if (!assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (assemblyb->resources, MonoReflectionResource, i), error))
+ return FALSE;
+ }
}
if (mb->resources) {
int len = mono_array_length (mb->resources);
- for (i = 0; i < len; ++i)
- assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (mb->resources, MonoReflectionResource, i));
+ for (i = 0; i < len; ++i) {
+ if (!assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (mb->resources, MonoReflectionResource, i), error))
+ return FALSE;
+ }
}
if (!build_compressed_metadata (assembly, error))
mono_error_init (error);
- name = mono_string_to_utf8 (fileName);
+ name = mono_string_to_utf8_checked (fileName, error);
+ return_val_if_nok (error, NULL);
image = mono_image_open (name, &status);
if (!image) {
* determined at assembly save time.
*/
/*image = (MonoDynamicImage*)ab->dynamic_assembly->assembly.image; */
- name = mono_string_to_utf8 (ab->name);
+ name = mono_string_to_utf8_checked (ab->name, error);
+ return_val_if_nok (error, FALSE);
fqname = mono_string_to_utf8_checked (moduleb->module.fqname, error);
if (!is_ok (error)) {
g_free (name);
}
}
/* This is stored in vtables/JITted code so it has to be pinned */
- res = (MonoReflectionType *)mono_object_new_pinned (domain, mono_defaults.monotype_class, error);
+ res = (MonoReflectionType *)mono_object_new_pinned (domain, mono_defaults.runtimetype_class, error);
if (!mono_error_ok (error))
return NULL;
type = mono_reflection_get_type_with_rootimage (rootimage, image, info, ignorecase, &type_resolve, error);
if (type == NULL && !info->assembly.name && image != mono_defaults.corlib) {
+ /* ignore the error and try again */
mono_error_cleanup (error);
+ mono_error_init (error);
image = mono_defaults.corlib;
type = mono_reflection_get_type_with_rootimage (rootimage, image, info, ignorecase, &type_resolve, error);
}
} else if (strcmp (klass->name, "TypeBuilder") == 0) {
MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)obj;
token = tb->table_idx | MONO_TOKEN_TYPE_DEF;
- } else if (strcmp (klass->name, "MonoType") == 0) {
+ } else if (strcmp (klass->name, "RuntimeType") == 0) {
MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType*)obj, error);
return_val_if_nok (error, 0);
MonoClass *mc = mono_class_from_mono_type (type);
return token;
}
+/*
+ * Load the type with name @n on behalf of image @image. On failure sets @error and returns NULL.
+ * The @is_enum flag only affects the error message that's displayed on failure.
+ */
+static MonoType*
+cattr_type_from_name (char *n, MonoImage *image, gboolean is_enum, MonoError *error)
+{
+ MonoError inner_error;
+ MonoType *t = mono_reflection_type_from_name_checked (n, image, &inner_error);
+ if (!t) {
+ mono_error_set_type_load_name (error, g_strdup(n), NULL,
+ "Could not load %s %s while decoding custom attribute: %s",
+ is_enum ? "enum type": "type",
+ n,
+ mono_error_get_message (&inner_error));
+ mono_error_cleanup (&inner_error);
+ return NULL;
+ }
+ return t;
+}
+
static MonoClass*
load_cattr_enum_type (MonoImage *image, const char *p, const char **end, MonoError *error)
{
n = (char *)g_memdup (p, slen + 1);
n [slen] = 0;
- t = mono_reflection_type_from_name_checked (n, image, error);
- if (!t) {
- char *msg = g_strdup (mono_error_get_message (error));
- mono_error_cleanup (error);
- /* We don't free n, it's consumed by mono_error */
- mono_error_set_type_load_name (error, n, NULL, "Could not load enum type %s while decoding custom attribute: %s", n, msg);
- g_free (msg);
- return NULL;
- }
+ t = cattr_type_from_name (n, image, TRUE, error);
g_free (n);
+ return_val_if_nok (error, NULL);
p += slen;
*end = p;
return mono_class_from_mono_type (t);
slen = mono_metadata_decode_value (p, &p);
n = (char *)g_memdup (p, slen + 1);
n [slen] = 0;
- t = mono_reflection_type_from_name_checked (n, image, error);
- if (!t) {
- char *msg = g_strdup (mono_error_get_message (error));
- mono_error_cleanup (error);
- /* We don't free n, it's consumed by mono_error */
- mono_error_set_type_load_name (error, n, NULL, "Could not load type %s while decoding custom attribute: %msg", n, msg);
- g_free (msg);
- return NULL;
- }
+ t = cattr_type_from_name (n, image, FALSE, error);
g_free (n);
+ return_val_if_nok (error, NULL);
*end = p + slen;
rt = mono_type_get_object_checked (mono_domain_get (), t, error);
slen = mono_metadata_decode_value (p, &p);
n = (char *)g_memdup (p, slen + 1);
n [slen] = 0;
- t = mono_reflection_type_from_name_checked (n, image, error);
- if (!t) {
- char *msg = g_strdup (mono_error_get_message (error));
- mono_error_cleanup (error);
- /* We don't free n, it's consumed by mono_error */
- mono_error_set_type_load_name (error, n, NULL, "Could not load type %s while decoding custom attribute: %s", n, msg);
- g_free (msg);
- return NULL;
- }
+ t = cattr_type_from_name (n, image, FALSE, error);
g_free (n);
+ return_val_if_nok (error, NULL);
p += slen;
subc = mono_class_from_mono_type (t);
} else if (subt >= MONO_TYPE_BOOLEAN && subt <= MONO_TYPE_R8) {
mono_error_init (error);
klass = obj->vtable->klass;
- if (klass == mono_defaults.monotype_class) {
+ if (klass == mono_defaults.runtimetype_class) {
MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType *)obj, error);
return_val_if_nok (error, NULL);
klass = mono_class_from_mono_type (type);
MonoClass *klass = mono_object_class (prop);
if (strcmp (klass->name, "PropertyBuilder") == 0) {
MonoReflectionPropertyBuilder *pb = (MonoReflectionPropertyBuilder *)prop;
- *name = mono_string_to_utf8 (pb->name);
+ *name = mono_string_to_utf8_checked (pb->name, error);
+ return_if_nok (error);
*type = mono_reflection_type_get_handle ((MonoReflectionType*)pb->type, error);
} else {
MonoReflectionProperty *p = (MonoReflectionProperty *)prop;
MonoClass *klass = mono_object_class (field);
if (strcmp (klass->name, "FieldBuilder") == 0) {
MonoReflectionFieldBuilder *fb = (MonoReflectionFieldBuilder *)field;
- *name = mono_string_to_utf8 (fb->name);
+ *name = mono_string_to_utf8_checked (fb->name, error);
+ return_if_nok (error);
*type = mono_reflection_type_get_handle ((MonoReflectionType*)fb->type, error);
} else {
MonoReflectionField *f = (MonoReflectionField *)field;
*p++ = 0xFF;
break;
}
- str = mono_string_to_utf8 ((MonoString*)arg);
+ str = mono_string_to_utf8_checked ((MonoString*)arg, error);
+ return_if_nok (error);
slen = strlen (str);
if ((p-buffer) + 10 + slen >= *buflen) {
char *newbuf;
res->data.custom_data.custom_name =
type_get_fully_qualified_name (marshaltyperef);
}
- if (minfo->mcookie)
- res->data.custom_data.cookie = mono_string_to_utf8 (minfo->mcookie);
+ if (minfo->mcookie) {
+ res->data.custom_data.cookie = mono_string_to_utf8_checked (minfo->mcookie, error);
+ if (!is_ok (error)) {
+ image_g_free (image, res);
+ return NULL;
+ }
+ }
break;
default:
event->parent = klass;
event->attrs = eb->attrs;
- event->name = mono_string_to_utf8 (eb->name);
+ event->name = mono_string_to_utf8_checked (eb->name, error);
+ if (!is_ok (error)) {
+ g_free (event);
+ return NULL;
+ }
if (eb->add_method)
event->add = eb->add_method->mhandle;
if (eb->remove_method)
return_val_if_nok (error, NULL);
*handle_class = mono_defaults.string_class;
g_assert (result);
- } else if (strcmp (obj->vtable->klass->name, "MonoType") == 0) {
+ } else if (strcmp (obj->vtable->klass->name, "RuntimeType") == 0) {
MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType*)obj, error);
return_val_if_nok (error, NULL);
MonoClass *mc = mono_class_from_mono_type (type);
/* Find the method */
- name = mono_string_to_utf8 (m->name);
+ name = mono_string_to_utf8_checked (m->name, error);
+ return_val_if_nok (error, NULL);
iter = NULL;
while ((method = mono_class_get_methods (klass, &iter))) {
if (!strcmp (method->name, name))
params [0] = mono_type_get_object_checked (mono_domain_get (), &oklass->byval_arg, error);
return_val_if_nok (error, FALSE);
- res = mono_runtime_try_invoke (method, (MonoObject*)(mono_class_get_ref_info (klass)), params, &exc, error);
+ MonoError inner_error;
+ res = mono_runtime_try_invoke (method, (MonoObject*)(mono_class_get_ref_info (klass)), params, &exc, &inner_error);
- if (exc || !mono_error_ok (error)) {
- mono_error_cleanup (error);
+ if (exc || !is_ok (&inner_error)) {
+ mono_error_cleanup (&inner_error);
return FALSE;
} else
return *(MonoBoolean*)mono_object_unbox (res);
/* unlike most Invoke* cases InvokeMember is not inside System.Reflection[.Emit] but is SecuritySafeCritical */
if (((*kname == 'T') && (strcmp (kname, "Type") == 0)) ||
- ((*kname == 'M') && (strcmp (kname, "MonoType")) == 0)) {
+ ((*kname == 'R') && (strcmp (kname, "RuntimeType")) == 0)) {
/* if calling InvokeMember then we can't stop the stackwalk here and need to look at the caller */
if (strcmp (m->name, "InvokeMember") == 0)
{
}
+static void G_GNUC_UNUSED
+sgen_client_binary_protocol_pin_stats (int objects_pinned_in_nursery, size_t bytes_pinned_in_nursery, int objects_pinned_in_major, size_t bytes_pinned_in_major)
+{
+}
+
int sgen_thread_handshake (BOOL suspend);
gboolean sgen_suspend_thread (SgenThreadInfo *info);
gboolean sgen_resume_thread (SgenThreadInfo *info);
major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_PINNED, (IterateObjectCallbackFunc)clear_domain_free_major_pinned_object_callback, domain);
if (domain == mono_get_root_domain ()) {
- sgen_pin_stats_print_class_stats ();
+ sgen_pin_stats_report ();
sgen_object_layout_dump (stdout);
}
- sgen_restart_world (0, NULL);
+ sgen_restart_world (0);
binary_protocol_domain_unload_end (domain);
binary_protocol_flush_buffers (FALSE);
}
}
-void
-sgen_client_log_timing (GGTimingInfo *info, mword promoted_size, mword major_used_size)
-{
- SgenMajorCollector *major_collector = sgen_get_major_collector ();
- mword num_major_sections = major_collector->get_num_major_sections ();
- char full_timing_buff [1024];
- full_timing_buff [0] = '\0';
-
- if (!info->is_overflow)
- sprintf (full_timing_buff, "total %.2fms", info->stw_time / 10000.0f);
- if (info->generation == GENERATION_OLD)
- mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR%s: (%s) pause %.2fms, %s los size: %dK in use: %dK",
- info->is_overflow ? "_OVERFLOW" : "",
- info->reason ? info->reason : "",
- (int)info->total_time / 10000.0f,
- full_timing_buff,
- los_memory_usage_total / 1024,
- los_memory_usage / 1024);
- else
- mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MINOR%s: (%s) pause %.2fms, %s promoted %dK major size: %dK in use: %dK los size: %dK in use: %dK",
- info->is_overflow ? "_OVERFLOW" : "",
- info->reason ? info->reason : "",
- (int)info->total_time / 10000.0f,
- full_timing_buff,
- (int)promoted_size / 1024,
- major_collector->section_size * num_major_sections / 1024,
- major_used_size / 1024,
- los_memory_usage_total / 1024,
- los_memory_usage / 1024);
-}
-
/*
* Debugging
*/
/* LOCKING: assumes the GC lock is held */
void
-sgen_client_restart_world (int generation, GGTimingInfo *timing)
+sgen_client_restart_world (int generation, gint64 *stw_time)
{
TV_DECLARE (end_sw);
TV_DECLARE (start_handshake);
*/
release_gc_locks ();
- if (timing) {
- timing [0].stw_time = usec;
- }
+ *stw_time = usec;
}
void
MonoBoolean
ves_icall_System_Net_Dns_GetHostByName_internal (MonoString *host, MonoString **h_name, MonoArray **h_aliases, MonoArray **h_addr_list)
{
+ MonoError error;
gboolean add_local_ips = FALSE, add_info_ok = TRUE;
gchar this_hostname [256];
MonoAddressInfo *info = NULL;
- char *hostname = mono_string_to_utf8 (host);
- MonoError error;
int hint;
+ char *hostname = mono_string_to_utf8_checked (host, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
+
hint = get_addrinfo_family_hint (&error);
if (!mono_error_ok (&error)) {
mono_error_set_pending_exception (&error);
gchar hostname [NI_MAXHOST] = { 0 };
gboolean ret;
- address = mono_string_to_utf8 (addr);
+ address = mono_string_to_utf8_checked (addr, &error);
+ if (mono_error_set_pending_exception (&error))
+ return FALSE;
if (inet_pton (AF_INET, address, &saddr.sin_addr ) == 1) {
family = AF_INET;
{
ThreadPoolCounter counter;
MonoInternalThread *thread;
+ gint64 current_ticks;
gint32 now;
mono_coop_mutex_lock (&threadpool->worker_creation_lock);
mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try create worker", mono_native_thread_id_get ());
-
- if ((now = mono_100ns_ticks () / 10 / 1000 / 1000) == 0) {
+ current_ticks = mono_100ns_ticks ();
+ now = current_ticks / (10 * 1000 * 1000);
+ if (0 == current_ticks) {
g_warning ("failed to get 100ns ticks");
} else {
if (threadpool->worker_creation_current_second != now) {
UNLOCK_THREAD (this_obj);
if (this_obj->name && this_obj->tid) {
- char *tname = mono_string_to_utf8 (name);
+ char *tname = mono_string_to_utf8_checked (name, error);
+ return_if_nok (error);
mono_profiler_thread_name (this_obj->tid, tname);
mono_native_thread_set_name (thread_get_tid (this_obj), tname);
mono_free (tname);
if test -d $(top_srcdir)/.git; then \
(cd $(top_srcdir); \
LANG=C; export LANG; \
- branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
+ if test -z "$$ghprbPullId"; then \
+ branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
+ else \
+ branch="pull-request-$$ghprbPullId"; \
+ fi; \
version=`git log --no-color --first-parent -n1 --pretty=format:%h`; \
echo "#define FULL_VERSION \"$$branch/$$version\""; \
); \
MonoAotFileFlags flags;
MonoDynamicStream blob;
gboolean blob_closed;
- MonoClass **typespec_classes;
+ GHashTable *typespec_classes;
GString *llc_args;
GString *as_args;
char *assembly_name_sym;
/* FIXME: Search referenced images as well */
if (!acfg->typespec_classes) {
- acfg->typespec_classes = (MonoClass **)mono_mempool_alloc0 (acfg->mempool, sizeof (MonoClass*) * len);
- for (i = 0; i < len; ++i) {
+ acfg->typespec_classes = g_hash_table_new (NULL, NULL);
+ for (i = 0; i < len; i++) {
MonoError error;
- acfg->typespec_classes [i] = mono_class_get_and_inflate_typespec_checked (acfg->image, MONO_TOKEN_TYPE_SPEC | (i + 1), NULL, &error);
+ int typespec = MONO_TOKEN_TYPE_SPEC | (i + 1);
+ MonoClass *klass_key = mono_class_get_and_inflate_typespec_checked (acfg->image, typespec, NULL, &error);
g_assert (mono_error_ok (&error)); /* FIXME error handling */
+ g_hash_table_insert (acfg->typespec_classes, klass_key, GINT_TO_POINTER (typespec));
}
}
- for (i = 0; i < len; ++i) {
- if (acfg->typespec_classes [i] == klass)
- break;
- }
-
- if (i < len)
- return MONO_TOKEN_TYPE_SPEC | (i + 1);
- else
- return 0;
+ return GPOINTER_TO_INT (g_hash_table_lookup (acfg->typespec_classes, klass));
}
static void
g_hash_table_destroy (acfg->image_hash);
g_hash_table_destroy (acfg->unwind_info_offsets);
g_hash_table_destroy (acfg->method_label_hash);
+ if (!acfg->typespec_classes)
+ g_hash_table_destroy (acfg->typespec_classes);
g_hash_table_destroy (acfg->export_names);
g_hash_table_destroy (acfg->plt_entry_debug_sym_cache);
g_hash_table_destroy (acfg->klass_blob_hash);
gboolean err;
MethodRef ref;
gboolean res;
+ gpointer addr;
+ MonoError inner_error;
mono_error_init (error);
return NULL;
for (i = 0; i < slot; ++i) {
- decode_method_ref (amodule, &ref, p, &p, error);
- mono_error_cleanup (error); /* FIXME don't swallow the error */
+ decode_method_ref (amodule, &ref, p, &p, &inner_error);
+ mono_error_cleanup (&inner_error); /* FIXME don't swallow the error */
}
- res = decode_method_ref (amodule, &ref, p, &p, error);
- mono_error_cleanup (error); /* FIXME don't swallow the error */
+ res = decode_method_ref (amodule, &ref, p, &p, &inner_error);
+ mono_error_cleanup (&inner_error); /* FIXME don't swallow the error */
if (!res)
return NULL;
if (ref.no_aot_trampoline)
if (mono_metadata_token_index (ref.token) == 0 || mono_metadata_token_table (ref.token) != MONO_TABLE_METHOD)
return NULL;
- return mono_aot_get_method_from_token (domain, ref.image, ref.token, error);
+ addr = mono_aot_get_method_from_token (domain, ref.image, ref.token, error);
+ return addr;
}
gboolean
MonoError error;
res = init_method (amodule, method_index, method, init_class, context, &error);
- /* Its okay to raise in llvmonly mode */
if (!is_ok (&error)) {
MonoException *ex = mono_error_convert_to_exception (&error);
+ /* Its okay to raise in llvmonly mode */
if (ex)
mono_llvm_throw_exception ((MonoObject*)ex);
}
MonoAotModule *amodule = (MonoAotModule *)klass->image->aot_module;
guint8 *code;
gboolean cache_result = FALSE;
+ MonoError inner_error;
mono_error_init (error);
if (method_index == 0xffffff && method->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED && method->klass->rank && strstr (method->name, "System.Collections.Generic")) {
MonoMethod *m = mono_aot_get_array_helper_from_wrapper (method);
- code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+ code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+ mono_error_cleanup (&inner_error);
if (code)
return code;
- if (!is_ok (error))
- return NULL;
}
/*
* Get the code for the <object> instantiation which should be emitted into
* the mscorlib aot image by the AOT compiler.
*/
- code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+ code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+ mono_error_cleanup (&inner_error);
if (code)
return code;
- if (!is_ok (error))
- return NULL;
}
/* Same for CompareExchange<T> and Exchange<T> */
* Get the code for the <object> instantiation which should be emitted into
* the mscorlib aot image by the AOT compiler.
*/
- code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+ code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+ mono_error_cleanup (&inner_error);
if (code)
return code;
- if (!is_ok (error))
- return NULL;
}
/* For ARRAY_ACCESSOR wrappers with reference types, use the <object> instantiation saved in corlib */
m = mono_marshal_get_array_accessor_wrapper (m);
if (m != method) {
- code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+ code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+ mono_error_cleanup (&inner_error);
if (code)
return code;
- if (!is_ok (error))
- return NULL;
}
}
}
MonoError error;
gpointer res = mono_aot_get_method_checked (domain, method, &error);
- /* This is a public api function so it can raise exceptions */
+ /* This is external only, so its ok to raise here */
mono_error_raise_exception (&error);
return res;
}
}
gpointer
-mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *error)
+mono_aot_get_method_checked (MonoDomain *domain,
+ MonoMethod *method, MonoError *error);
{
+ mono_error_init (error);
return NULL;
}
gpointer
mono_aot_get_method_from_token (MonoDomain *domain, MonoImage *image, guint32 token, MonoError *error)
{
+ mono_error_init (error);
return NULL;
}
gpointer
mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int slot, MonoError *error)
{
+ mono_error_init (error);
+
return NULL;
}
}
[Category ("DYNCALL")]
+ [Category ("!FULLAOT-AMD64")]
static int test_0_arm64_dyncall_hfa_double () {
double arg1 = 1.0f;
// HFA with double members
}
[Category ("DYNCALL")]
+ [Category ("!FULLAOT-AMD64")]
static int test_0_arm64_dyncall_hfa_float () {
double arg1 = 1.0f;
var s = new Struct2 ();
[Category ("DYNCALL")]
[Category ("GSHAREDVT")]
+ [Category ("!FULLAOT-AMD64")]
static int test_0_arm64_dyncall_gsharedvt_out_hfa_double () {
/* gsharedvt out trampoline with double hfa argument */
double arg1 = 1.0f;
[Category ("DYNCALL")]
[Category ("GSHAREDVT")]
+ [Category ("!FULLAOT-AMD64")]
static int test_0_arm64_dyncall_gsharedvt_out_hfa_float () {
/* gsharedvt out trampoline with double hfa argument */
double arg1 = 1.0f;
}
[Category ("DYNCALL")]
+ [Category ("GSHAREDVT")]
+ [Category ("!FULLAOT-AMD64")]
static int test_0_arm64_dyncall_vtypebyref_ret () {
var s = new VTypeByRefStruct () { o1 = 1, o2 = 2, o3 = 3 };
Type t = typeof (Foo5<>).MakeGenericType (new Type [] { typeof (VTypeByRefStruct) });
}
}
- [Category("DYNCALL")]
+ [Category ("DYNCALL")]
+ [Category ("GSHAREDVT")]
static int test_0_arm_dyncall_reg_stack_split () {
var m = typeof (Foo6).GetMethod ("reg_stack_split_inner").MakeGenericMethod (new Type[] { typeof (long) });
var o = new Foo6 ();
}
[Category ("DYNCALL")]
+ [Category ("!FULLAOT-AMD64")]
public static int test_0_dyncall_nullable () {
int? v;
return 0;
}
+ [Category ("DYNCALL")]
public static int test_0_array_accessor_runtime_invoke_ref () {
var t = typeof (string[]);
var arr = Array.CreateInstance (typeof (string), 1);
}
[Category ("DYNCALL")]
+ [Category ("!FULLAOT-AMD64")]
public static int test_0_large_nullable_invoke () {
var s = new LargeStruct () { a = 1, b = 2, c = 3, d = 4 };
int hash = 0;
if (obj == NULL)
- return 0;
+ return NULL;
if (suspend_count) {
/*
static inline int
get_objid (MonoObject *obj)
{
- return get_objref (obj)->id;
+ if (!obj)
+ return 0;
+ else
+ return get_objref (obj)->id;
}
/*
ecount ++;
- if (!thread)
- thread = mono_thread_current ();
+ if (event == EVENT_KIND_VM_DEATH) {
+ thread = NULL;
+ } else {
+ if (!thread)
+ thread = mono_thread_current ();
- if (event == EVENT_KIND_VM_START && arg != NULL)
- thread = (MonoThread *)arg;
+ if (event == EVENT_KIND_VM_START && arg != NULL)
+ thread = (MonoThread *)arg;
+ }
buffer_add_objid (&buf, (MonoObject*)thread); // thread
static void
runtime_shutdown (MonoProfiler *prof)
{
- process_profiler_event (EVENT_KIND_VM_DEATH, mono_thread_current ());
+ process_profiler_event (EVENT_KIND_VM_DEATH, NULL);
mono_debugger_agent_cleanup ();
}
code = mono_jit_find_compiled_method_with_jit_info (domain, method, &ji);
if (!code) {
- MonoError error;
+ MonoError oerror;
/* Might be AOTed code */
- code = mono_aot_get_method_checked (domain, method, &error);
+ code = mono_aot_get_method_checked (domain, method, &oerror);
g_assert (code);
+ mono_error_assert_ok (&oerror);
ji = mono_jit_info_table_find (domain, (char *)code);
g_assert (ji);
}
void
mono_debugger_agent_debug_log (int level, MonoString *category, MonoString *message)
{
+ MonoError error;
int suspend_policy;
GSList *events;
EventInfo ei;
mono_loader_unlock ();
ei.level = level;
- ei.category = category ? mono_string_to_utf8 (category) : NULL;
- ei.message = message ? mono_string_to_utf8 (message) : NULL;
+ ei.category = NULL;
+ if (category) {
+ ei.category = mono_string_to_utf8_checked (category, &error);
+ mono_error_cleanup (&error);
+ }
+ ei.message = NULL;
+ if (message) {
+ ei.message = mono_string_to_utf8_checked (message, &error);
+ mono_error_cleanup (&error);
+ }
process_event (EVENT_KIND_USER_LOG, &ei, 0, NULL, events, suspend_policy);
static void
buffer_add_cattr_arg (Buffer *buf, MonoType *t, MonoDomain *domain, MonoObject *val)
{
- if (val && val->vtable->klass == mono_defaults.monotype_class) {
+ if (val && val->vtable->klass == mono_defaults.runtimetype_class) {
/* Special case these so the client doesn't have to handle Type objects */
buffer_add_byte (buf, VALUE_TYPE_ID_TYPE);
s = mono_ldstr_checked (domain, method->klass->image, mono_metadata_token_index (token), &error);
mono_error_assert_ok (&error); /* FIXME don't swallow the error */
- s2 = mono_string_to_utf8 (s);
+ s2 = mono_string_to_utf8_checked (s, &error);
+ mono_error_assert_ok (&error);
buffer_add_byte (buf, TOKEN_TYPE_STRING);
buffer_add_string (buf, s2);
break;
}
default: {
+ MonoError error;
gpointer val;
MonoClass *handle_class;
break;
}
} else {
- MonoError error;
val = mono_ldtoken_checked (method->klass->image, token, &handle_class, NULL, &error);
if (!val)
g_error ("Could not load token due to %s", mono_error_get_message (&error));
} else if (handle_class == mono_defaults.string_class) {
char *s;
- s = mono_string_to_utf8 ((MonoString *)val);
+ s = mono_string_to_utf8_checked ((MonoString *)val, &error);
+ mono_error_assert_ok (&error);
buffer_add_byte (buf, TOKEN_TYPE_STRING);
buffer_add_string (buf, s);
g_free (s);
buffer_add_int (buf, mono_string_length (str) * 2);
buffer_add_data (buf, (guint8*)mono_string_chars (str), mono_string_length (str) * 2);
} else {
- s = mono_string_to_utf8 (str);
+ MonoError error;
+ s = mono_string_to_utf8_checked (str, &error);
+ mono_error_assert_ok (&error);
buffer_add_string (buf, s);
g_free (s);
}
if (verbose >= 2)
g_print ("Running '%s' ...\n", method->name);
#ifdef MONO_USE_AOT_COMPILER
- if ((func = (TestMethod)mono_aot_get_method_checked (mono_get_root_domain (), method, &error)))
- ;
- else
-#endif
+ MonoError error;
+ func = (TestMethod)mono_aot_get_method_checked (mono_get_root_domain (), method, &error);
+ mono_error_cleanup (&error);
+ if (!func)
func = (TestMethod)(gpointer)cfg->native_code;
+#else
+ func = (TestMethod)(gpointer)cfg->native_code;
+#endif
func = (TestMethod)mono_create_ftnptr (mono_get_root_domain (), func);
result = func ();
if (result != expected) {
#define NEW_LDSTRLITCONST(cfg,dest,val) NEW_AOTCONST ((cfg), (dest), MONO_PATCH_INFO_LDSTR_LIT, (val))
-#define NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.monotype_class)
+#define NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.runtimetype_class)
#define NEW_LDTOKENCONST(cfg,dest,image,token,generic_context) NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_LDTOKEN, (image), (token), (generic_context), STACK_PTR, NULL)
#define EMIT_NEW_LDSTRLITCONST(cfg,dest,val) do { NEW_AOTCONST ((cfg), (dest), MONO_PATCH_INFO_LDSTR_LIT, (val)); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
-#define EMIT_NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) do { NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.monotype_class); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
+#define EMIT_NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) do { NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.runtimetype_class); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
#define EMIT_NEW_LDTOKENCONST(cfg,dest,image,token,generic_context) do { NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_LDTOKEN, (image), (token), (generic_context), STACK_PTR, NULL); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
/* Avoid loading metadata or creating a generic vtable if possible */
addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, slot, &error);
- mono_error_assert_ok (&error); /* FIXME don't swallow the error */
+ mono_error_raise_exception (&error); // FIXME: Don't raise here
if (addr && !vt->klass->valuetype)
return mono_create_ftnptr (mono_domain_get (), addr);
if (ex)
mono_raise_exception (ex);
}
+
+void
+mono_throw_method_access (MonoMethod *callee, MonoMethod *caller)
+{
+ char *callee_name = mono_method_full_name (callee, 1);
+ char *caller_name = mono_method_full_name (caller, 1);
+ MonoError error;
+
+ mono_error_init (&error);
+ mono_error_set_generic_error (&error, "System", "MethodAccessException", "Method `%s' is inaccessible from method `%s'\n", callee_name, caller_name);
+ mono_error_set_pending_exception (&error);
+ g_free (callee_name);
+ g_free (caller_name);
+}
double mono_ckfinite (double d);
+void mono_throw_method_access (MonoMethod *callee, MonoMethod *caller);
+
#endif /* __MONO_JIT_ICALLS_H__ */
MONO_API MonoJitInfo *
mono_get_jit_info_from_method (MonoDomain *domain, MonoMethod *method);
-MONO_RT_EXTERNAL_ONLY MONO_API void *
+MONO_API MONO_RT_EXTERNAL_ONLY void *
mono_aot_get_method (MonoDomain *domain, MonoMethod *method);
MONO_END_DECLS
ins->inst_destbasereg = def->sreg1;
ins->inst_offset += def->inst_imm;
}
+
+ if (!MONO_IS_STORE_MEMBASE (ins) && !vreg_is_volatile (cfg, ins->dreg)) {
+ defs [ins->dreg] = ins;
+ def_index [ins->dreg] = ins_index;
+ }
}
- if ((spec [MONO_INST_DEST] != ' ') && !MONO_IS_STORE_MEMBASE (ins) && !vreg_is_volatile (cfg, ins->dreg)) {
- defs [ins->dreg] = ins;
- def_index [ins->dreg] = ins_index;
- }
-
if (MONO_IS_CALL (ins))
last_call_index = ins_index;
if (cfg->exception_type != MONO_EXCEPTION_NONE) \
goto exception_exit; \
} while (0)
-#define METHOD_ACCESS_FAILURE(method, cmethod) do { \
- method_access_failure ((cfg), (method), (cmethod)); \
- goto exception_exit; \
- } while (0)
#define FIELD_ACCESS_FAILURE(method, field) do { \
field_access_failure ((cfg), (method), (field)); \
goto exception_exit; \
G_BREAKPOINT ();
}
-static MONO_NEVER_INLINE void
-method_access_failure (MonoCompile *cfg, MonoMethod *method, MonoMethod *cil_method)
-{
- char *method_fname = mono_method_full_name (method, TRUE);
- char *cil_method_fname = mono_method_full_name (cil_method, TRUE);
- mono_cfg_set_exception (cfg, MONO_EXCEPTION_MONO_ERROR);
- mono_error_set_generic_error (&cfg->error, "System", "MethodAccessException", "Method `%s' is inaccessible from method `%s'\n", cil_method_fname, method_fname);
- g_free (method_fname);
- g_free (cil_method_fname);
-}
-
static MONO_NEVER_INLINE void
field_access_failure (MonoCompile *cfg, MonoMethod *method, MonoClassField *field)
{
return ins;
}
+
+static void
+emit_method_access_failure (MonoCompile *cfg, MonoMethod *method, MonoMethod *cil_method)
+{
+ MonoInst *args [16];
+
+ args [0] = emit_get_rgctx_method (cfg, mono_method_check_context_used (method), method, MONO_RGCTX_INFO_METHOD);
+ args [1] = emit_get_rgctx_method (cfg, mono_method_check_context_used (cil_method), cil_method, MONO_RGCTX_INFO_METHOD);
+
+ mono_emit_jit_icall (cfg, mono_throw_method_access, args);
+}
+
static MonoMethod*
get_memcpy_method (void)
{
MONO_INST_NEW (cfg, ins, OP_OBJC_GET_SELECTOR);
ins->dreg = mono_alloc_ireg (cfg);
// FIXME: Leaks
- ins->inst_p0 = mono_string_to_utf8 (s);
+ ins->inst_p0 = mono_string_to_utf8_checked (s, &cfg->error);
+ return_val_if_nok (&cfg->error, NULL);
MONO_ADD_INS (cfg->cbb, ins);
return ins;
}
}
if (!mono_method_can_access_method (method_definition, target_method) &&
!mono_method_can_access_method (method, cil_method))
- METHOD_ACCESS_FAILURE (method, cil_method);
+ emit_method_access_failure (cfg, method, cil_method);
}
if (mono_security_core_clr_enabled ())
cil_method = cmethod;
if (!dont_verify && !cfg->skip_visibility && !mono_method_can_access_method (method, cmethod))
- METHOD_ACCESS_FAILURE (method, cil_method);
+ emit_method_access_failure (cfg, method, cil_method);
if (mono_security_core_clr_enabled ())
ensure_method_is_allowed_to_call_method (cfg, method, cmethod);
* Zoltan Varga <vargaz@gmail.com>
* Rodrigo Kumpera <kumpera@gmail.com>
* Andi McClure <andi.mcclure@xamarin.com>
+ * Johan Lorensson <johan.lorensson@xamarin.com>
*
* Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
* Licensed under the MIT license. See LICENSE file in the project root for full license information.
/*
* Slot mapping:
+ *
+ * System V:
* 0..5 - rdi, rsi, rdx, rcx, r8, r9
* 6..13 - xmm0..xmm7
* 14.. - stack slots
+ *
+ * Windows:
+ * 0..3 - rcx, rdx, r8, r9
+ * 4..7 - xmm0..xmm3
+ * 8.. - stack slots
+ *
*/
static inline int
map_reg (int reg)
DEBUG_AMD64_GSHAREDVT_PRINT ("-- return in (%s) out (%s) var_ret %d\n", arg_info_desc (&caller_cinfo->ret), arg_info_desc (&callee_cinfo->ret), var_ret);
if (cinfo->ret.storage == ArgValuetypeAddrInIReg) {
- /* Both the caller and the callee pass the vtype ret address in r8 */
+ /* Both the caller and the callee pass the vtype ret address in r8 (System V) and RCX or RDX (Windows) */
g_assert (gcinfo->ret.storage == ArgValuetypeAddrInIReg || gcinfo->ret.storage == ArgGsharedvtVariableInReg);
add_to_map (map, map_reg (cinfo->ret.reg), map_reg (cinfo->ret.reg));
}
* Zoltan Varga <vargaz@gmail.com>
* Rodrigo Kumpera <kumpera@gmail.com>
* Andi McClure <andi.mcclure@xamarin.com>
+ * Johan Lorensson <johan.lorensson@xamarin.com>
*
* Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
* Licensed under the MIT license. See LICENSE file in the project root for full license information.
/*
* get_call_info:
*
- * Obtain information about a call according to the calling convention.
- * For AMD64, see the "System V ABI, x86-64 Architecture Processor Supplement
+ * Obtain information about a call according to the calling convention.
+ * For AMD64 System V, see the "System V ABI, x86-64 Architecture Processor Supplement
* Draft Version 0.23" document for more information.
+ * For AMD64 Windows, see "Overview of x64 Calling Conventions",
+ * https://msdn.microsoft.com/en-us/library/ms235286.aspx
*/
static CallInfo*
get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
{
int i;
-#ifdef HOST_WIN32
- return FALSE;
-#endif
-
switch (cinfo->ret.storage) {
case ArgNone:
case ArgInIReg:
#define MONO_ARCH_HAVE_TLS_GET_REG 1
#endif
-#if !defined (TARGET_WIN32)
#define MONO_ARCH_GSHAREDVT_SUPPORTED 1
-#endif
#if defined(TARGET_APPLETVOS)
}
}
+ MonoError isinst_error;
+ mono_error_init (&isinst_error);
if (ei->flags == MONO_EXCEPTION_CLAUSE_NONE && mono_object_isinst_checked (ex_obj, catch_class, &error)) {
setup_stack_trace (mono_ex, dynamic_methods, initial_trace_ips, &trace_ips);
g_slist_free (dynamic_methods);
MONO_CONTEXT_SET_IP (ctx, ei->handler_start);
return TRUE;
}
- mono_error_cleanup (&error);
+ mono_error_cleanup (&isinst_error);
}
}
mono_error_assert_ok (&error);
}
if (msg == NULL) {
- msg = message ? mono_string_to_utf8 ((MonoString *) message) : g_strdup ("(System.Exception.Message property not available)");
+ if (message) {
+ msg = mono_string_to_utf8_checked ((MonoString *) message, &error);
+ if (!is_ok (&error)) {
+ mono_error_cleanup (&error);
+ msg = g_strdup ("(error while display System.Exception.Message property)");
+ }
+ } else {
+ msg = g_strdup ("(System.Exception.Message property not available)");
+ }
}
g_print ("[%p:] EXCEPTION handling: %s.%s: %s\n", (void*)mono_native_thread_id_get (), mono_object_class (obj)->name_space, mono_object_class (obj)->name, msg);
g_free (msg);
MonoString *str = mono_object_to_string (exc, &other);
char *msg = NULL;
- if (str)
- msg = mono_string_to_utf8 (str);
+ if (str) {
+ MonoError inner_error;
+ msg = mono_string_to_utf8_checked (str, &inner_error);
+ if (!is_ok (&inner_error)) {
+ msg = g_strdup_printf ("Nested exception while formatting original exception");
+ mono_error_cleanup (&inner_error);
+ }
+ }
else if (other) {
char *original_backtrace = mono_exception_get_managed_backtrace ((MonoException*)exc);
char *nested_backtrace = mono_exception_get_managed_backtrace ((MonoException*)other);
int i;
if (!MONO_TYPE_ISSTRUCT (t))
- return &mono_defaults.int_class->byval_arg;
+ return get_wrapper_shared_type (&mono_defaults.object_class->byval_arg);
klass = mono_class_from_mono_type (t);
orig_ctx = &klass->generic_class->context;
MINI_OP(OP_IL_SEQ_POINT, "il_seq_point", NONE, NONE, NONE)
MINI_OP(OP_IMPLICIT_EXCEPTION, "implicit_exception", NONE, NONE, NONE)
+/* CALL opcodes need to stay together, see MONO_IS_CALL macro */
MINI_OP(OP_VOIDCALL, "voidcall", NONE, NONE, NONE)
MINI_OP(OP_VOIDCALL_REG, "voidcall_reg", NONE, IREG, NONE)
MINI_OP(OP_VOIDCALL_MEMBASE, "voidcall_membase", NONE, IREG, NONE)
register_icall (mono_llvmonly_init_delegate_virtual, "mono_llvmonly_init_delegate_virtual", "void object object ptr", TRUE);
register_icall (mono_get_assembly_object, "mono_get_assembly_object", "object ptr", TRUE);
register_icall (mono_get_method_object, "mono_get_method_object", "object ptr", TRUE);
+ register_icall (mono_throw_method_access, "mono_throw_method_access", "void ptr ptr", FALSE);
register_icall_with_wrapper (mono_monitor_enter, "mono_monitor_enter", "void obj");
register_icall_with_wrapper (mono_monitor_enter_v4, "mono_monitor_enter_v4", "void obj ptr");
#include <mono/metadata/appdomain.h>
#include <mono/metadata/debug-helpers.h>
#include <mono/metadata/profiler-private.h>
+#include <mono/utils/mono-error.h>
+#include <mono/utils/mono-error-internals.h>
#include <mono/utils/mono-math.h>
#include <mono/utils/mono-mmap.h>
#include <mono/utils/mono-hwcap-s390x.h>
/* */
/*------------------------------------------------------------------*/
+static void
+decodeParmString (MonoString *s)
+{
+ MonoError error;
+ char *str = mono_string_to_utf8_checked(s, &error);
+ if (is_ok (&error)) {
+ printf("[STRING:%p:%s], ", s, str);
+ g_free (str);
+ } else {
+ mono_error_cleanup (&error);
+ printf("[STRING:%p:], ", s);
+ }
+}
+
static void
decodeParm(MonoType *type, void *curParm, int size)
{
MonoString *s = *((MonoString **) curParm);
if (s) {
g_assert (((MonoObject *) s)->vtable->klass == mono_defaults.string_class);
- printf("[STRING:%p:%s], ", s, mono_string_to_utf8(s));
+ decodeParmString (s);
} else {
printf("[STRING:null], ");
}
klass = obj->vtable->klass;
printf("%p [%p] ",obj,curParm);
if (klass == mono_defaults.string_class) {
- printf("[STRING:%p:%s]",
- obj, mono_string_to_utf8 ((MonoString *) obj));
+ decodeParmString ((MonoString *)obj);
} else if (klass == mono_defaults.int32_class) {
printf("[INT32:%p:%d]",
obj, *(gint32 *)((char *)obj + sizeof (MonoObject)));
if (obj->vtable) {
klass = obj->vtable->klass;
if (klass == mono_defaults.string_class) {
- printf ("this:[STRING:%p:%s], ",
- obj, mono_string_to_utf8 ((MonoString *)obj));
+ printf ("this:");
+ decodeParmString((MonoString *)obj);
} else {
printf ("this:%p[%s.%s], ",
obj, klass->name_space, klass->name);
;
if (s) {
g_assert (((MonoObject *)s)->vtable->klass == mono_defaults.string_class);
- printf ("[STRING:%p:%s]", s, mono_string_to_utf8 (s));
+ decodeParmString (s);
} else
printf ("[STRING:null], ");
break;
g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
} else {
MonoError error;
+
/* Avoid loading metadata or creating a generic vtable if possible */
if (lookup_aot && !vt->klass->valuetype) {
aot_addr = (guint8 *)mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, interface_offset + mono_method_get_vtable_slot (imt_method), &error);
- g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
+ mono_error_raise_exception (&error); // FIXME: Don't raise here
} else {
aot_addr = NULL;
}
/* Avoid loading metadata or creating a generic vtable if possible */
addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, slot, &error);
- if (!is_ok (&error)) {
- mono_error_set_pending_exception (&error);
- return NULL;
- }
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
if (addr && !vt->klass->valuetype) {
if (mono_domain_owns_vtable_slot (mono_domain_get (), vtable_slot))
*vtable_slot = addr;
token = *(guint32*)(gpointer)token_info;
addr = mono_aot_get_method_from_token (mono_domain_get (), image, token, &error);
+ if (!is_ok (&error))
+ mono_error_cleanup (&error);
if (!addr) {
- if (!is_ok (&error))
- g_error ("Could not load AOT method due to %s", mono_error_get_message (&error));
method = mono_get_method_checked (image, token, NULL, NULL, &error);
if (!method)
- g_error ("Could not load AOT method due to %s", mono_error_get_message (&error));
+ g_error ("Could not load AOT trampoline due to %s", mono_error_get_message (&error));
/* Use the generic code */
return mono_magic_trampoline (regs, code, method, tramp);
#define MONO_IS_STORE_MEMBASE(ins) (((ins)->opcode >= OP_STORE_MEMBASE_REG && (ins)->opcode <= OP_STOREV_MEMBASE) || ((ins)->opcode >= OP_ATOMIC_STORE_I1 && (ins)->opcode <= OP_ATOMIC_STORE_R8))
#define MONO_IS_STORE_MEMINDEX(ins) (((ins)->opcode >= OP_STORE_MEMINDEX) && ((ins)->opcode <= OP_STORER8_MEMINDEX))
-#define MONO_IS_CALL(ins) (((ins->opcode >= OP_VOIDCALL) && (ins->opcode <= OP_VOIDCALL_MEMBASE)) || ((ins->opcode >= OP_FCALL) && (ins->opcode <= OP_FCALL_MEMBASE)) || ((ins->opcode >= OP_LCALL) && (ins->opcode <= OP_LCALL_MEMBASE)) || ((ins->opcode >= OP_VCALL) && (ins->opcode <= OP_VCALL_MEMBASE)) || ((ins->opcode >= OP_CALL) && (ins->opcode <= OP_CALL_MEMBASE)) || ((ins->opcode >= OP_VCALL2) && (ins->opcode <= OP_VCALL2_MEMBASE)) || (ins->opcode == OP_TAILCALL) || ((ins->opcode >= OP_RCALL) && (ins->opcode <= OP_RCALL_MEMBASE)))
+// OP_DYN_CALL is not a MonoCallInst
+#define MONO_IS_CALL(ins) (((ins->opcode >= OP_VOIDCALL) && (ins->opcode <= OP_VCALL2_MEMBASE)) || (ins->opcode == OP_TAILCALL))
#define MONO_IS_JUMP_TABLE(ins) (((ins)->opcode == OP_JUMP_TABLE) ? TRUE : ((((ins)->opcode == OP_AOTCONST) && (ins->inst_i1 == (gpointer)MONO_PATCH_INFO_SWITCH)) ? TRUE : ((ins)->opcode == OP_SWITCH) ? TRUE : ((((ins)->opcode == OP_GOT_ENTRY) && ((ins)->inst_right->inst_i1 == (gpointer)MONO_PATCH_INFO_SWITCH)) ? TRUE : FALSE)))
g_free (as);
} else if (klass == mono_defaults.int32_class) {
printf ("[INT32:%p:%d], ", o, *(gint32 *)((char *)o + sizeof (MonoObject)));
- } else if (klass == mono_defaults.monotype_class) {
+ } else if (klass == mono_defaults.runtimetype_class) {
printf ("[TYPE:%s], ", mono_type_full_name (((MonoReflectionType*)o)->type));
} else
printf ("[%s.%s:%p], ", klass->name_space, klass->name, o);
* Zoltan Varga <vargaz@gmail.com>
* Rodrigo Kumpera <kumpera@gmail.com>
* Andi McClure <andi.mcclure@xamarin.com>
+ * Johan Lorensson <johan.lorensson@xamarin.com>
*
* Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
* Licensed under the MIT license. See LICENSE file in the project root for full license information.
return start;
}
-
gpointer
mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
{
<caller registers area>
<rgctx>
<gsharedvt info>
- <calee stack area>
- <calee reg area>
+ <callee stack area>
+ <callee reg area>
*/
/* Call start_gsharedvt_call () */
if (aot) {
code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_amd64_start_gsharedvt_call");
- amd64_call_reg (code, AMD64_R11);
+ #ifdef TARGET_WIN32
+ /* Since we are doing a call as part of setting up stackframe, the reserved shadow stack used by Windows platform is allocated up in
+ the callee stack area but currently the callee reg area is in between. Windows calling convention dictates that room is made on stack where
+ callee can save any parameters passed in registers. Since Windows x64 calling convention
+ uses 4 registers for the first 4 parameters, stack needs to be adjusted before making the call.
+ NOTE, Windows calling convention assumes that space for all registers have been reserved, regardless
+ of the number of function parameters actually used.
+ */
+ int shadow_reg_size = 0;
+
+ shadow_reg_size = ALIGN_TO (PARAM_REGS * sizeof(gpointer), MONO_ARCH_FRAME_ALIGNMENT);
+ amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, shadow_reg_size);
+ amd64_call_reg (code, AMD64_R11);
+ amd64_alu_reg_imm (code, X86_ADD, AMD64_RSP, shadow_reg_size);
+ #else
+ amd64_call_reg (code, AMD64_R11);
+ #endif
} else {
g_error ("no aot");
}
*/
/* Load vret_slot */
- amd64_mov_reg_membase (code, AMD64_RDI, AMD64_R10, MONO_STRUCT_OFFSET (GSharedVtCallInfo, vret_slot), 4);
- amd64_alu_reg_imm (code, X86_SUB, AMD64_RDI, n_arg_regs + n_arg_fregs);
- amd64_shift_reg_imm (code, X86_SHL, AMD64_RDI, 3);
+ /* Use first input parameter register as scratch since it is volatile on all platforms */
+ amd64_mov_reg_membase (code, MONO_AMD64_ARG_REG1, AMD64_R10, MONO_STRUCT_OFFSET (GSharedVtCallInfo, vret_slot), 4);
+ amd64_alu_reg_imm (code, X86_SUB, MONO_AMD64_ARG_REG1, n_arg_regs + n_arg_fregs);
+ amd64_shift_reg_imm (code, X86_SHL, MONO_AMD64_ARG_REG1, 3);
/* vret address is RBP - (framesize - caller_reg_area_offset) */
amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof(mgreg_t));
- amd64_alu_reg_reg (code, X86_ADD, AMD64_R11, AMD64_RDI);
+ amd64_alu_reg_reg (code, X86_ADD, AMD64_R11, MONO_AMD64_ARG_REG1);
/* Load ret marshal type */
/* Load vret address in R11 */
/*
Address to write return to is in the original value of the register specified by vret_arg_reg.
- This will be either RSI or RDI depending on whether this is a static call.
+ This will be either RSI, RDI (System V) or RCX, RDX (Windows) depending on whether this is a static call.
Its location:
We alloc 'framesize' bytes below RBP to save regs, info and rgctx. RSP = RBP - framesize
- We store rdi at RSP + caller_reg_area_offset + slot_index_of (register) * 8.
+ We store RDI (System V), RCX (Windows) at RSP + caller_reg_area_offset + slot_index_of (register) * 8.
address: RBP - framesize + caller_reg_area_offset + 8*slot
*/
prop = mono_class_get_property_from_name (klass, "StackTrace");
str = (MonoString*)mono_property_get_value_checked (prop, NULL, NULL, &error);
mono_error_assert_ok (&error);
- stack_trace = mono_string_to_utf8 (str);
+ stack_trace = mono_string_to_utf8_checked (str, &error);
+ mono_error_assert_ok (&error);
fprintf (stdout, "-= Stack Trace =-\n%s\n\n", stack_trace);
g_free (stack_trace);
static gboolean saved_strings_find_func (gpointer key, gpointer value, gpointer user_data)
{
+ MonoError error;
SavedStringFindInfo *info = (SavedStringFindInfo*)user_data;
SavedString *saved = (SavedString*)value;
gchar *utf_str;
if (!info || !saved || mono_string_length (saved->string) != info->len)
return FALSE;
- utf_str = mono_string_to_utf8 (saved->string);
+ utf_str = mono_string_to_utf8_checked (saved->string, &error);
+ mono_error_assert_ok (&error);
hash = do_calc_string_hash (0, utf_str);
g_free (utf_str);
* single-threaded programs this is a nop.
*/
void sgen_client_stop_world (int generation);
-void sgen_client_restart_world (int generation, GGTimingInfo *timing);
+void sgen_client_restart_world (int generation, gint64 *stw_time);
/*
* Must return FALSE. The bridge is not supported outside of Mono.
void sgen_client_mark_togglerefs (char *start, char *end, ScanCopyContext ctx);
void sgen_client_clear_togglerefs (char *start, char *end, ScanCopyContext ctx);
-/*
- * Called after collections, reporting the amount of time they took. No action is
- * necessary.
- */
-void sgen_client_log_timing (GGTimingInfo *info, mword promoted_size, mword major_used_size);
-
/*
* Called to handle `MONO_GC_PARAMS` and `MONO_GC_DEBUG` options. The `handle` functions
* must return TRUE if they have recognized and processed the option, FALSE otherwise.
break;
}
- if (ref->vtable->klass == mono_defaults.string_class)
- str = mono_string_to_utf8 ((MonoString*)ref);
- else
+ if (ref->vtable->klass == mono_defaults.string_class) {
+ MonoError error;
+ str = mono_string_to_utf8_checked ((MonoString*)ref, &error);
+ mono_error_cleanup (&error);
+ } else
str = NULL;
g_print ("xdomain reference in %p (%s.%s) at offset %d (%s) to %p (%s.%s) (%s) - pointed to by:\n",
obj, obj->vtable->klass->name_space, obj->vtable->klass->name,
pin_object (obj_to_pin);
GRAY_OBJECT_ENQUEUE (queue, obj_to_pin, desc);
- sgen_pin_stats_register_object (obj_to_pin, obj_to_pin_size);
+ sgen_pin_stats_register_object (obj_to_pin, GENERATION_NURSERY);
definitely_pinned [count] = obj_to_pin;
count++;
}
void
sgen_pin_object (GCObject *object, GrayQueue *queue)
{
+ SGEN_ASSERT (0, sgen_ptr_in_nursery (object), "We're only supposed to use this for pinning nursery objects when out of memory.");
+
/*
* All pinned objects are assumed to have been staged, so we need to stage as well.
* Also, the count of staged objects shows that "late pinning" happened.
binary_protocol_pin (object, (gpointer)LOAD_VTABLE (object), safe_object_get_size (object));
++objects_pinned;
- sgen_pin_stats_register_object (object, safe_object_get_size (object));
+ sgen_pin_stats_register_object (object, GENERATION_NURSERY);
GRAY_OBJECT_ENQUEUE (queue, object, sgen_obj_get_descriptor_safe (object));
}
* Return whether any objects were late-pinned due to being out of memory.
*/
static gboolean
-collect_nursery (SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
+collect_nursery (const char *reason, gboolean is_overflow, SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
{
gboolean needs_major;
size_t max_garbage_amount;
time_minor_scan_remsets += TV_ELAPSED (atv, btv);
SGEN_LOG (2, "Old generation scan: %lld usecs", (long long)TV_ELAPSED (atv, btv));
- sgen_pin_stats_print_class_stats ();
+ sgen_pin_stats_report ();
/* FIXME: Why do we do this at this specific, seemingly random, point? */
sgen_client_collecting_minor (&fin_ready_queue, &critical_fin_queue);
binary_protocol_flush_buffers (FALSE);
- sgen_memgov_minor_collection_end ();
+ sgen_memgov_minor_collection_end (reason, is_overflow);
/*objects are late pinned because of lack of memory, so a major is a good call*/
needs_major = objects_pinned > 0;
sgen_los_pin_object (bigobj->data);
if (SGEN_OBJECT_HAS_REFERENCES (bigobj->data))
GRAY_OBJECT_ENQUEUE (WORKERS_DISTRIBUTE_GRAY_QUEUE, bigobj->data, sgen_obj_get_descriptor ((GCObject*)bigobj->data));
- sgen_pin_stats_register_object (bigobj->data, safe_object_get_size (bigobj->data));
+ sgen_pin_stats_register_object (bigobj->data, GENERATION_OLD);
SGEN_LOG (6, "Marked large object %p (%s) size: %lu from roots", bigobj->data,
sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (bigobj->data)),
(unsigned long)sgen_los_object_size (bigobj));
time_major_scan_mod_union += TV_ELAPSED (btv, atv);
}
- sgen_pin_stats_print_class_stats ();
+ sgen_pin_stats_report ();
}
static void
}
static void
-major_start_collection (gboolean concurrent, size_t *old_next_pin_slot)
+major_start_collection (const char *reason, gboolean concurrent, size_t *old_next_pin_slot)
{
SgenObjectOperations *object_ops;
reset_pinned_from_failed_allocation ();
- sgen_memgov_major_collection_start ();
+ sgen_memgov_major_collection_start (concurrent, reason);
//count_ref_nonref_objs ();
//consistency_check ();
}
static void
-major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean forced)
+major_finish_collection (const char *reason, gboolean is_overflow, size_t old_next_pin_slot, gboolean forced)
{
ScannedObjectCounts counts;
SgenObjectOperations *object_ops;
g_assert (sgen_gray_object_queue_is_empty (&gray_queue));
- sgen_memgov_major_collection_end (forced);
+ sgen_memgov_major_collection_end (forced, concurrent_collection_in_progress, reason, is_overflow);
current_collection_generation = -1;
memset (&counts, 0, sizeof (ScannedObjectCounts));
}
static gboolean
-major_do_collection (const char *reason, gboolean forced)
+major_do_collection (const char *reason, gboolean is_overflow, gboolean forced)
{
TV_DECLARE (time_start);
TV_DECLARE (time_end);
/* world must be stopped already */
TV_GETTIME (time_start);
- major_start_collection (FALSE, &old_next_pin_slot);
- major_finish_collection (reason, old_next_pin_slot, forced);
+ major_start_collection (reason, FALSE, &old_next_pin_slot);
+ major_finish_collection (reason, is_overflow, old_next_pin_slot, forced);
TV_GETTIME (time_end);
gc_stats.major_gc_time += TV_ELAPSED (time_start, time_end);
binary_protocol_concurrent_start ();
// FIXME: store reason and pass it when finishing
- major_start_collection (TRUE, NULL);
+ major_start_collection (reason, TRUE, NULL);
gray_queue_redirect (&gray_queue);
current_collection_generation = GENERATION_OLD;
sgen_cement_reset ();
- major_finish_collection ("finishing", -1, forced);
+ major_finish_collection ("finishing", FALSE, -1, forced);
if (whole_heap_check_before_collection)
sgen_check_whole_heap (FALSE);
void
sgen_perform_collection (size_t requested_size, int generation_to_collect, const char *reason, gboolean wait_to_finish)
{
- TV_DECLARE (gc_start);
- TV_DECLARE (gc_end);
TV_DECLARE (gc_total_start);
TV_DECLARE (gc_total_end);
- GGTimingInfo infos [2];
int overflow_generation_to_collect = -1;
int oldest_generation_collected = generation_to_collect;
const char *overflow_reason = NULL;
SGEN_ASSERT (0, generation_to_collect == GENERATION_NURSERY || generation_to_collect == GENERATION_OLD, "What generation is this?");
- TV_GETTIME (gc_start);
-
sgen_stop_world (generation_to_collect);
TV_GETTIME (gc_total_start);
if (concurrent_collection_in_progress)
major_update_concurrent_collection ();
- if (collect_nursery (NULL, FALSE) && !concurrent_collection_in_progress) {
+ if (collect_nursery (reason, FALSE, NULL, FALSE) && !concurrent_collection_in_progress) {
overflow_generation_to_collect = GENERATION_OLD;
overflow_reason = "Minor overflow";
}
} else {
SGEN_ASSERT (0, generation_to_collect == GENERATION_OLD, "We should have handled nursery collections above");
if (major_collector.is_concurrent && !wait_to_finish) {
- collect_nursery (NULL, FALSE);
+ collect_nursery ("Concurrent start", FALSE, NULL, FALSE);
major_start_concurrent_collection (reason);
oldest_generation_collected = GENERATION_NURSERY;
- } else if (major_do_collection (reason, wait_to_finish)) {
+ } else if (major_do_collection (reason, FALSE, wait_to_finish)) {
overflow_generation_to_collect = GENERATION_NURSERY;
overflow_reason = "Excessive pinning";
}
}
- TV_GETTIME (gc_end);
-
- memset (infos, 0, sizeof (infos));
- infos [0].generation = oldest_generation_collected;
- infos [0].reason = reason;
- infos [0].is_overflow = FALSE;
- infos [1].generation = -1;
- infos [0].total_time = SGEN_TV_ELAPSED (gc_start, gc_end);
-
if (overflow_generation_to_collect != -1) {
SGEN_ASSERT (0, !concurrent_collection_in_progress, "We don't yet support overflow collections with the concurrent collector");
* or the nursery is fully pinned.
*/
- infos [1].generation = overflow_generation_to_collect;
- infos [1].reason = overflow_reason;
- infos [1].is_overflow = TRUE;
- gc_start = gc_end;
-
if (overflow_generation_to_collect == GENERATION_NURSERY)
- collect_nursery (NULL, FALSE);
+ collect_nursery (overflow_reason, TRUE, NULL, FALSE);
else
- major_do_collection (overflow_reason, wait_to_finish);
-
- TV_GETTIME (gc_end);
- infos [1].total_time = SGEN_TV_ELAPSED (gc_start, gc_end);
+ major_do_collection (overflow_reason, TRUE, wait_to_finish);
oldest_generation_collected = MAX (oldest_generation_collected, overflow_generation_to_collect);
}
TV_GETTIME (gc_total_end);
time_max = MAX (time_max, TV_ELAPSED (gc_total_start, gc_total_end));
- sgen_restart_world (oldest_generation_collected, infos);
+ sgen_restart_world (oldest_generation_collected);
}
/*
/* LOCKING: assumes the GC lock is held */
void
-sgen_restart_world (int generation, GGTimingInfo *timing)
+sgen_restart_world (int generation)
{
long long major_total = -1, major_marked = -1, los_total = -1, los_marked = -1;
+ gint64 stw_time;
SGEN_ASSERT (0, world_is_stopped, "Why are we restarting a running world?");
world_is_stopped = FALSE;
- sgen_client_restart_world (generation, timing);
+ sgen_client_restart_world (generation, &stw_time);
binary_protocol_world_restarted (generation, sgen_timestamp ());
if (sgen_client_bridge_need_processing ())
sgen_client_bridge_processing_finish (generation);
- sgen_memgov_collection_end (generation, timing, timing ? 2 : 0);
+ sgen_memgov_collection_end (generation, stw_time);
}
gboolean
sgen_stop_world (0);
sgen_clear_nursery_fragments ();
sgen_check_whole_heap (FALSE);
- sgen_restart_world (0, NULL);
+ sgen_restart_world (0);
}
gint64
INTERNAL_MEM_CARDTABLE_MOD_UNION,
INTERNAL_MEM_BINARY_PROTOCOL,
INTERNAL_MEM_TEMPORARY,
+ INTERNAL_MEM_LOG_ENTRY,
INTERNAL_MEM_FIRST_CLIENT
};
void sgen_free_internal_dynamic (void *addr, size_t size, int type);
void sgen_pin_stats_enable (void);
-void sgen_pin_stats_register_object (GCObject *obj, size_t size);
+void sgen_pin_stats_register_object (GCObject *obj, int generation);
void sgen_pin_stats_register_global_remset (GCObject *obj);
-void sgen_pin_stats_print_class_stats (void);
+void sgen_pin_stats_report (void);
void sgen_sort_addresses (void **array, size_t size);
void sgen_add_to_global_remset (gpointer ptr, GCObject *obj);
/* STW */
-typedef struct {
- int generation;
- const char *reason;
- gboolean is_overflow;
- gint64 total_time;
- gint64 stw_time;
-} GGTimingInfo;
-
void sgen_stop_world (int generation);
-void sgen_restart_world (int generation, GGTimingInfo *timing);
+void sgen_restart_world (int generation);
gboolean sgen_is_world_stopped (void);
gboolean sgen_set_allow_synchronous_major (gboolean flag);
MS_CALC_MARK_BIT (word, bit, obj);
SGEN_ASSERT (9, !MS_MARK_BIT (block, word, bit), "object %p already marked", obj);
MS_SET_MARK_BIT (block, word, bit);
- binary_protocol_mark (obj, (gpointer)LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
+ binary_protocol_mark (obj, (gpointer)SGEN_LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
return FALSE;
#endif
return FALSE;
}
-#define LOAD_VTABLE SGEN_LOAD_VTABLE
-
-#define MS_MARK_OBJECT_AND_ENQUEUE_CHECKED(obj,desc,block,queue) do { \
- int __word, __bit; \
- MS_CALC_MARK_BIT (__word, __bit, (obj)); \
- if (!MS_MARK_BIT ((block), __word, __bit) && MS_OBJ_ALLOCED ((obj), (block))) { \
- MS_SET_MARK_BIT ((block), __word, __bit); \
- if (sgen_gc_descr_has_references (desc)) \
- GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
- binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
- INC_NUM_MAJOR_OBJECTS_MARKED (); \
- } \
- } while (0)
#define MS_MARK_OBJECT_AND_ENQUEUE(obj,desc,block,queue) do { \
int __word, __bit; \
MS_CALC_MARK_BIT (__word, __bit, (obj)); \
MS_SET_MARK_BIT ((block), __word, __bit); \
if (sgen_gc_descr_has_references (desc)) \
GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
- binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
+ binary_protocol_mark ((obj), (gpointer)SGEN_LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
INC_NUM_MAJOR_OBJECTS_MARKED (); \
} \
} while (0)
if (first_entry == last_entry)
return;
- block->has_pinned = TRUE;
-
entry = sgen_pinning_get_entry (first_entry);
end = sgen_pinning_get_entry (last_entry);
if (index == last_index)
continue;
obj = MS_BLOCK_OBJ (block, index);
- MS_MARK_OBJECT_AND_ENQUEUE_CHECKED (obj, sgen_obj_get_descriptor (obj), block, queue);
+ if (!MS_OBJ_ALLOCED (obj, block))
+ continue;
+ MS_MARK_OBJECT_AND_ENQUEUE (obj, sgen_obj_get_descriptor (obj), block, queue);
+ sgen_pin_stats_register_object (obj, GENERATION_OLD);
last_index = index;
}
+
+ /*
+ * There might have been potential pinning "pointers" into this block, but none of
+ * them pointed to occupied slots, in which case we don't have to pin the block.
+ */
+ if (last_index >= 0)
+ block->has_pinned = TRUE;
}
static inline void
static void
count_nonpinned_callback (GCObject *obj, size_t size, void *data)
{
- GCVTable vtable = LOAD_VTABLE (obj);
+ GCVTable vtable = SGEN_LOAD_VTABLE (obj);
if (SGEN_VTABLE_HAS_REFERENCES (vtable))
++count_nonpinned_ref;
static void
count_pinned_callback (GCObject *obj, size_t size, void *data)
{
- GCVTable vtable = LOAD_VTABLE (obj);
+ GCVTable vtable = SGEN_LOAD_VTABLE (obj);
if (SGEN_VTABLE_HAS_REFERENCES (vtable))
++count_pinned_ref;
#define MIN_MINOR_COLLECTION_ALLOWANCE ((mword)(DEFAULT_NURSERY_SIZE * default_allowance_nursery_size_ratio))
+static SgenPointerQueue log_entries = SGEN_POINTER_QUEUE_INIT (INTERNAL_MEM_TEMPORARY);
+static MonoCoopMutex log_entries_mutex;
+
mword total_promoted_size = 0;
mword total_allocated_major = 0;
static mword total_promoted_size_start;
static mword total_alloc = 0;
static mword total_alloc_max = 0;
+static SGEN_TV_DECLARE(last_minor_start);
+static SGEN_TV_DECLARE(last_major_start);
+
/* GC triggers. */
static gboolean debug_print_allowance = FALSE;
sgen_memgov_minor_collection_start (void)
{
total_promoted_size_start = total_promoted_size;
+ SGEN_TV_GETTIME (last_minor_start);
+}
+
+static void
+sgen_add_log_entry (SgenLogEntry *log_entry)
+{
+ mono_coop_mutex_lock (&log_entries_mutex);
+ sgen_pointer_queue_add (&log_entries, log_entry);
+ mono_coop_mutex_unlock (&log_entries_mutex);
}
void
-sgen_memgov_minor_collection_end (void)
+sgen_memgov_minor_collection_end (const char *reason, gboolean is_overflow)
{
+ if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+ SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+ SGEN_TV_DECLARE (current_time);
+ SGEN_TV_GETTIME (current_time);
+
+ log_entry->type = SGEN_LOG_NURSERY;
+ log_entry->reason = reason;
+ log_entry->is_overflow = is_overflow;
+ log_entry->time = SGEN_TV_ELAPSED (last_minor_start, current_time);
+ log_entry->promoted_size = total_promoted_size - total_promoted_size_start;
+ log_entry->major_size = major_collector.get_num_major_sections () * major_collector.section_size;
+ log_entry->major_size_in_use = last_used_slots_size + total_allocated_major - total_allocated_major_end;
+ log_entry->los_size = los_memory_usage_total;
+ log_entry->los_size_in_use = los_memory_usage;
+
+ sgen_add_log_entry (log_entry);
+ }
}
void
void
sgen_memgov_major_post_sweep (mword used_slots_size)
{
- mword num_major_sections = major_collector.get_num_major_sections ();
+ if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+ SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+
+ log_entry->type = SGEN_LOG_MAJOR_SWEEP_FINISH;
+ log_entry->major_size = major_collector.get_num_major_sections () * major_collector.section_size;
+ log_entry->major_size_in_use = used_slots_size + total_allocated_major - total_allocated_major_end;
- mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_SWEEP: major size: %dK in use: %dK",
- num_major_sections * major_collector.section_size / 1024,
- (used_slots_size + total_allocated_major - total_allocated_major_end) / 1024);
+ sgen_add_log_entry (log_entry);
+ }
last_used_slots_size = used_slots_size;
}
void
-sgen_memgov_major_collection_start (void)
+sgen_memgov_major_collection_start (gboolean concurrent, const char *reason)
{
need_calculate_minor_collection_allowance = TRUE;
major_start_heap_size = get_heap_size ();
if (debug_print_allowance) {
SGEN_LOG (0, "Starting collection with heap size %ld bytes", (long)major_start_heap_size);
}
+ if (concurrent && mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+ SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+
+ log_entry->type = SGEN_LOG_MAJOR_CONC_START;
+ log_entry->reason = reason;
+
+ sgen_add_log_entry (log_entry);
+ }
+ SGEN_TV_GETTIME (last_major_start);
}
void
-sgen_memgov_major_collection_end (gboolean forced)
+sgen_memgov_major_collection_end (gboolean forced, gboolean concurrent, const char *reason, gboolean is_overflow)
{
- last_collection_los_memory_usage = los_memory_usage;
+ if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+ SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+ SGEN_TV_DECLARE (current_time);
+ SGEN_TV_GETTIME (current_time);
+
+ if (concurrent) {
+ log_entry->type = SGEN_LOG_MAJOR_CONC_FINISH;
+ } else {
+ log_entry->type = SGEN_LOG_MAJOR_SERIAL;
+ }
+ log_entry->time = SGEN_TV_ELAPSED (last_major_start, current_time);
+ log_entry->reason = reason;
+ log_entry->is_overflow = is_overflow;
+ log_entry->los_size = los_memory_usage_total;
+ log_entry->los_size_in_use = los_memory_usage;
+
+ sgen_add_log_entry (log_entry);
+ }
+ last_collection_los_memory_usage = los_memory_usage;
total_allocated_major_end = total_allocated_major;
if (forced) {
sgen_get_major_collector ()->finish_sweeping ();
{
}
+static void
+sgen_output_log_entry (SgenLogEntry *entry, gint64 stw_time, int generation)
+{
+ char full_timing_buff [1024];
+ full_timing_buff [0] = '\0';
+
+ if (!entry->is_overflow)
+ sprintf (full_timing_buff, "stw %.2fms", stw_time / 10000.0f);
+
+ switch (entry->type) {
+ case SGEN_LOG_NURSERY:
+ mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MINOR%s: (%s) time %.2fms, %s promoted %dK major size: %dK in use: %dK los size: %dK in use: %dK",
+ entry->is_overflow ? "_OVERFLOW" : "",
+ entry->reason ? entry->reason : "",
+ entry->time / 10000.0f,
+ (generation == GENERATION_NURSERY) ? full_timing_buff : "",
+ entry->promoted_size / 1024,
+ entry->major_size / 1024,
+ entry->major_size_in_use / 1024,
+ entry->los_size / 1024,
+ entry->los_size_in_use / 1024);
+ break;
+ case SGEN_LOG_MAJOR_SERIAL:
+ mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR%s: (%s) time %.2fms, %s los size: %dK in use: %dK",
+ entry->is_overflow ? "_OVERFLOW" : "",
+ entry->reason ? entry->reason : "",
+ (int)entry->time / 10000.0f,
+ full_timing_buff,
+ entry->los_size / 1024,
+ entry->los_size_in_use / 1024);
+ break;
+ case SGEN_LOG_MAJOR_CONC_START:
+ mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_CONCURRENT_START: (%s)", entry->reason ? entry->reason : "");
+ break;
+ case SGEN_LOG_MAJOR_CONC_FINISH:
+ mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_CONCURRENT_FINISH: (%s) time %.2fms, %s los size: %dK in use: %dK",
+ entry->reason ? entry->reason : "",
+ entry->time / 10000.0f,
+ full_timing_buff,
+ entry->los_size / 1024,
+ entry->los_size_in_use / 1024);
+ break;
+ case SGEN_LOG_MAJOR_SWEEP_FINISH:
+ mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_SWEEP: major size: %dK in use: %dK",
+ entry->major_size / 1024,
+ entry->major_size_in_use / 1024);
+ break;
+ default:
+ SGEN_ASSERT (0, FALSE, "Invalid log entry type");
+ break;
+ }
+}
+
void
-sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count)
+sgen_memgov_collection_end (int generation, gint64 stw_time)
{
- int i;
- for (i = 0; i < info_count; ++i) {
- if (info[i].generation != -1)
- sgen_client_log_timing (&info [i], total_promoted_size - total_promoted_size_start, last_used_slots_size + total_allocated_major - total_allocated_major_end);
+ /*
+ * At this moment the world has been restarted which means we can log all pending entries
+ * without risking deadlocks.
+ */
+ if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+ size_t i;
+ SGEN_ASSERT (0, !sgen_is_world_stopped (), "We can't log if the world is stopped");
+ mono_coop_mutex_lock (&log_entries_mutex);
+ for (i = 0; i < log_entries.next_slot; i++) {
+ sgen_output_log_entry (log_entries.data [i], stw_time, generation);
+ sgen_free_internal (log_entries.data [i], INTERNAL_MEM_LOG_ENTRY);
+ }
+ sgen_pointer_queue_clear (&log_entries);
+ mono_coop_mutex_unlock (&log_entries_mutex);
}
}
mono_counters_register ("Memgov alloc", MONO_COUNTER_GC | MONO_COUNTER_WORD | MONO_COUNTER_BYTES | MONO_COUNTER_VARIABLE, &total_alloc);
mono_counters_register ("Memgov max alloc", MONO_COUNTER_GC | MONO_COUNTER_WORD | MONO_COUNTER_BYTES | MONO_COUNTER_MONOTONIC, &total_alloc_max);
+ mono_coop_mutex_init (&log_entries_mutex);
+
+ sgen_register_fixed_internal_mem_type (INTERNAL_MEM_LOG_ENTRY, sizeof (SgenLogEntry));
+
if (max_heap == 0)
return;
/* GC trigger heuristics */
void sgen_memgov_minor_collection_start (void);
-void sgen_memgov_minor_collection_end (void);
+void sgen_memgov_minor_collection_end (const char *reason, gboolean is_overflow);
void sgen_memgov_major_pre_sweep (void);
void sgen_memgov_major_post_sweep (mword used_slots_size);
-void sgen_memgov_major_collection_start (void);
-void sgen_memgov_major_collection_end (gboolean forced);
+void sgen_memgov_major_collection_start (gboolean concurrent, const char *reason);
+void sgen_memgov_major_collection_end (gboolean forced, gboolean concurrent, const char *reason, gboolean is_overflow);
void sgen_memgov_collection_start (int generation);
-void sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count);
+void sgen_memgov_collection_end (int generation, gint64 stw);
gboolean sgen_need_major_collection (mword space_needed);
SGEN_ALLOC_ACTIVATE = 2
} SgenAllocFlags;
+typedef enum {
+ SGEN_LOG_NURSERY,
+ SGEN_LOG_MAJOR_SERIAL,
+ SGEN_LOG_MAJOR_CONC_START,
+ SGEN_LOG_MAJOR_CONC_FINISH,
+ SGEN_LOG_MAJOR_SWEEP_FINISH
+} SgenLogType;
+
+typedef struct {
+ SgenLogType type;
+ const char *reason;
+ gboolean is_overflow;
+ gint64 time;
+ mword promoted_size;
+ mword major_size;
+ mword major_size_in_use;
+ mword los_size;
+ mword los_size_in_use;
+} SgenLogEntry;
+
/* OS memory allocation */
void* sgen_alloc_os_memory (size_t size, SgenAllocFlags flags, const char *assert_description);
void* sgen_alloc_os_memory_aligned (size_t size, mword alignment, SgenAllocFlags flags, const char *assert_description);
static PinStatAddress *pin_stat_addresses = NULL;
static size_t pinned_byte_counts [PIN_TYPE_MAX];
+static size_t pinned_bytes_in_generation [GENERATION_MAX];
+static int pinned_objects_in_generation [GENERATION_MAX];
+
static SgenPointerQueue pinned_objects = SGEN_POINTER_QUEUE_INIT (INTERNAL_MEM_STATISTICS);
static SgenHashTable pinned_class_hash_table = SGEN_HASH_TABLE_INIT (INTERNAL_MEM_STATISTICS, INTERNAL_MEM_STAT_PINNED_CLASS, sizeof (PinnedClassEntry), g_str_hash, g_str_equal);
pin_stat_addresses = NULL;
for (i = 0; i < PIN_TYPE_MAX; ++i)
pinned_byte_counts [i] = 0;
+ for (i = 0; i < GENERATION_MAX; ++i) {
+ pinned_bytes_in_generation [i] = 0;
+ pinned_objects_in_generation [i] = 0;
+ }
sgen_pointer_queue_clear (&pinned_objects);
sgen_hash_table_clean (&pinned_class_hash_table);
sgen_hash_table_clean (&global_remset_class_hash_table);
}
void
-sgen_pin_stats_register_object (GCObject *obj, size_t size)
+sgen_pin_stats_register_object (GCObject *obj, int generation)
{
int pin_types = 0;
+ size_t size = 0;
+
+ if (binary_protocol_is_enabled ()) {
+ size = sgen_safe_object_get_size (obj);
+ pinned_bytes_in_generation [generation] += size;
+ ++pinned_objects_in_generation [generation];
+ }
if (!do_pin_stats)
return;
+ if (!size)
+ size = sgen_safe_object_get_size (obj);
+
pin_stats_count_object_from_tree (obj, size, pin_stat_addresses, &pin_types);
sgen_pointer_queue_add (&pinned_objects, obj);
}
void
-sgen_pin_stats_print_class_stats (void)
+sgen_pin_stats_report (void)
{
char *name;
PinnedClassEntry *pinned_entry;
GlobalRemsetClassEntry *remset_entry;
+ binary_protocol_pin_stats (pinned_objects_in_generation [GENERATION_NURSERY], pinned_bytes_in_generation [GENERATION_NURSERY],
+ pinned_objects_in_generation [GENERATION_OLD], pinned_bytes_in_generation [GENERATION_OLD]);
+
if (!do_pin_stats)
return;
IS_VTABLE_MATCH (FALSE)
END_PROTOCOL_ENTRY_FLUSH
+BEGIN_PROTOCOL_ENTRY4 (binary_protocol_pin_stats, TYPE_INT, objects_pinned_in_nursery, TYPE_SIZE, bytes_pinned_in_nursery, TYPE_INT, objects_pinned_in_major, TYPE_SIZE, bytes_pinned_in_major)
+DEFAULT_PRINT ()
+IS_ALWAYS_MATCH (TRUE)
+MATCH_INDEX (BINARY_PROTOCOL_MATCH)
+IS_VTABLE_MATCH (FALSE)
+END_PROTOCOL_ENTRY
+
#undef BEGIN_PROTOCOL_ENTRY0
#undef BEGIN_PROTOCOL_ENTRY1
#undef BEGIN_PROTOCOL_ENTRY2
#include "sgen-thread-pool.h"
#include "sgen-client.h"
#include "mono/utils/mono-membar.h"
+#include "mono/utils/mono-proclib.h"
#include <errno.h>
#include <string.h>
}
static void
-binary_protocol_open_file (void)
+binary_protocol_open_file (gboolean assert_on_failure)
{
char *filename;
+#ifdef F_SETLK
+ struct flock lock;
+ lock.l_type = F_WRLCK;
+ lock.l_whence = SEEK_SET;
+ lock.l_start = 0;
+ lock.l_len = 0;
+#endif
if (file_size_limit > 0)
filename = filename_for_index (current_file_index);
filename = filename_or_prefix;
do {
- binary_protocol_file = open (filename, O_CREAT|O_WRONLY|O_TRUNC, 0644);
- if (binary_protocol_file == -1 && errno != EINTR)
- break; /* Failed */
+ binary_protocol_file = open (filename, O_CREAT | O_WRONLY, 0644);
+ if (binary_protocol_file == -1) {
+ if (errno != EINTR)
+ break; /* Failed */
+#ifdef F_SETLK
+ } else if (fcntl (binary_protocol_file, F_SETLK, &lock) == -1) {
+ /* The lock for the file is already taken. Fail */
+ close (binary_protocol_file);
+ binary_protocol_file = -1;
+ break;
+#endif
+ } else {
+ /* We have acquired the lock. Truncate the file */
+ ftruncate (binary_protocol_file, 0);
+ }
} while (binary_protocol_file == -1);
- if (binary_protocol_file == -1)
+ if (binary_protocol_file == -1 && assert_on_failure)
g_error ("sgen binary protocol: failed to open file");
if (file_size_limit > 0)
binary_protocol_init (const char *filename, long long limit)
{
#ifdef HAVE_UNISTD_H
- filename_or_prefix = (char *)sgen_alloc_internal_dynamic (strlen (filename) + 1, INTERNAL_MEM_BINARY_PROTOCOL, TRUE);
- strcpy (filename_or_prefix, filename);
-
file_size_limit = limit;
- binary_protocol_open_file ();
+ /* Original name length + . + pid length in hex + null terminator */
+ filename_or_prefix = g_strdup_printf ("%s", filename);
+ binary_protocol_open_file (FALSE);
+
+ if (binary_protocol_file == -1) {
+ /* Another process owns the file, try adding the pid suffix to the filename */
+ gint32 pid = mono_process_current_pid ();
+ g_free (filename_or_prefix);
+ filename_or_prefix = g_strdup_printf ("%s.%x", filename, pid);
+ binary_protocol_open_file (TRUE);
+ }
+
+ /* If we have a file size limit, we might need to open additional files */
+ if (file_size_limit == 0)
+ g_free (filename_or_prefix);
binary_protocol_header (PROTOCOL_HEADER_CHECK, PROTOCOL_HEADER_VERSION, SIZEOF_VOID_P, G_BYTE_ORDER == G_LITTLE_ENDIAN);
#else
++current_file_index;
current_file_size = 0;
- binary_protocol_open_file ();
+ binary_protocol_open_file (TRUE);
}
#endif
static void
mono_error_prepare (MonoErrorInternal *error)
{
+ /* mono_error_set_* after a mono_error_cleanup without an intervening init */
+ g_assert (error->error_code != MONO_ERROR_CLEANUP_CALLED_SENTINEL);
if (error->error_code != MONO_ERROR_NONE)
return;
mono_error_cleanup (MonoError *oerror)
{
MonoErrorInternal *error = (MonoErrorInternal*)oerror;
- if (error->error_code == MONO_ERROR_NONE)
+ short int orig_error_code = error->error_code;
+ gboolean free_strings = error->flags & MONO_ERROR_FREE_STRINGS;
+ gboolean has_instance_handle = is_managed_exception (error);
+
+ /* Two cleanups in a row without an intervening init. */
+ g_assert (orig_error_code != MONO_ERROR_CLEANUP_CALLED_SENTINEL);
+
+ /* Mark it as cleaned up. */
+ error->error_code = MONO_ERROR_CLEANUP_CALLED_SENTINEL;
+ error->flags = 0;
+
+ if (orig_error_code == MONO_ERROR_NONE)
return;
- if (is_managed_exception (error))
+
+ if (has_instance_handle)
mono_gchandle_free (error->exn.instance_handle);
+
g_free ((char*)error->full_message);
g_free ((char*)error->full_message_with_fields);
- if (!(error->flags & MONO_ERROR_FREE_STRINGS)) //no memory was allocated
+ error->full_message = NULL;
+ error->full_message_with_fields = NULL;
+ if (!free_strings) //no memory was allocated
return;
g_free ((char*)error->type_name);
g_free ((char*)error->exception_name_space);
g_free ((char*)error->exception_name);
g_free ((char*)error->first_argument);
+ error->type_name = error->assembly_name = error->member_name = error->exception_name_space = error->exception_name = error->first_argument = NULL;
+ error->exn.klass = NULL;
+
}
gboolean
exception = (MonoException*) mono_gchandle_get_target (error->exn.instance_handle);
break;
+ case MONO_ERROR_CLEANUP_CALLED_SENTINEL:
+ mono_error_set_execution_engine (error_out, "MonoError reused after mono_error_cleanup");
+ break;
default:
mono_error_set_execution_engine (error_out, "Invalid error-code %d", error->error_code);
}
*/
MONO_ERROR_GENERIC = 9,
/* This one encapsulates a managed exception instance */
- MONO_ERROR_EXCEPTION_INSTANCE = 10
+ MONO_ERROR_EXCEPTION_INSTANCE = 10,
+
+ /* Not a valid error code - indicates that the error was cleaned up and reused */
+ MONO_ERROR_CLEANUP_CALLED_SENTINEL = 0xffff
};
/*Keep in sync with MonoErrorInternal*/
--- /dev/null
+@MONO@ RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+@MONO@ RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+@MONO@ RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+
+
+
// Prebuild code, might be in inputs, check:
// inputs/LIBRARY.pre
//
- string prebuild = Load (library + ".pre");
- string prebuild_windows, prebuild_unix;
-
- int q = library.IndexOf ("-");
- if (q != -1)
- prebuild = prebuild + Load (library.Substring (0, q) + ".pre");
-
- if (prebuild.IndexOf ("@MONO@") != -1){
- prebuild_unix = prebuild.Replace ("@MONO@", "mono").Replace ("@CAT@", "cat");
- prebuild_windows = prebuild.Replace ("@MONO@", "").Replace ("@CAT@", "type");
- } else {
- prebuild_unix = prebuild.Replace ("jay.exe", "jay");
- prebuild_windows = prebuild;
- }
- const string condition_unix = "Condition=\" '$(OS)' != 'Windows_NT' \"";
- const string condition_windows = "Condition=\" '$(OS)' == 'Windows_NT' \"";
- prebuild =
- " <PreBuildEvent " + condition_unix + ">\n" + prebuild_unix + "\n </PreBuildEvent>" + NewLine +
- " <PreBuildEvent " + condition_windows + ">" + NewLine + prebuild_windows + NewLine + " </PreBuildEvent>" + NewLine;
+ string prebuild = GenerateStep (library, ".pre", "PreBuildEvent");
+ string postbuild = GenerateStep (library, ".post", "PostBuildEvent");
var all_args = new Queue<string []> ();
all_args.Enqueue (flags.Split ());
var source = dk.Key;
if (source.EndsWith (".resources"))
source = source.Replace (".resources", ".resx");
- Console.WriteLine ("Got {0} -> {1}", dk.Key, source);
resources.AppendFormat (" <EmbeddedResource Include=\"{0}\">" + NewLine, source);
resources.AppendFormat (" <LogicalName>{0}</LogicalName>" + NewLine, dk.Value);
resources.AppendFormat (" </EmbeddedResource>" + NewLine);
build_output_dir = Path.GetDirectoryName (LibraryOutput);
else
build_output_dir = "bin\\Debug\\" + library;
-
-
- string postbuild_unix = string.Empty;
- string postbuild_windows = string.Empty;
-
- var postbuild =
- " <PostBuildEvent " + condition_unix + ">" + NewLine + postbuild_unix + NewLine + " </PostBuildEvent>" + NewLine +
- " <PostBuildEvent " + condition_windows + ">" + NewLine + postbuild_windows + NewLine + " </PostBuildEvent>";
-
bool basic_or_build = (library.Contains ("-basic") || library.Contains ("-build"));
Replace ("@DEBUGTYPE@", want_debugging_support ? "full" : "pdbonly").
Replace ("@REFERENCES@", refs.ToString ()).
Replace ("@PREBUILD@", prebuild).
- Replace ("@STARTUPOBJECT@", main == null ? "" : $"<StartupObject>{main}</StartupObject>").
Replace ("@POSTBUILD@", postbuild).
+ Replace ("@STARTUPOBJECT@", main == null ? "" : $"<StartupObject>{main}</StartupObject>").
//Replace ("@ADDITIONALLIBPATHS@", String.Format ("<AdditionalLibPaths>{0}</AdditionalLibPaths>", string.Join (",", libs.ToArray ()))).
Replace ("@ADDITIONALLIBPATHS@", String.Empty).
Replace ("@RESOURCES@", resources.ToString ()).
return Csproj;
}
+ string GenerateStep (string library, string suffix, string eventKey)
+ {
+ string target = Load (library + suffix);
+ string target_windows, target_unix;
+
+ int q = library.IndexOf ("-");
+ if (q != -1)
+ target = target + Load (library.Substring (0, q) + suffix);
+
+ if (target.IndexOf ("@MONO@") != -1){
+ target_unix = target.Replace ("@MONO@", "mono").Replace ("@CAT@", "cat");
+ target_windows = target.Replace ("@MONO@", "").Replace ("@CAT@", "type");
+ } else {
+ target_unix = target.Replace ("jay.exe", "jay");
+ target_windows = target;
+ }
+ const string condition_unix = "Condition=\" '$(OS)' != 'Windows_NT' \"";
+ const string condition_windows = "Condition=\" '$(OS)' == 'Windows_NT' \"";
+ var result =
+ $" <{eventKey} {condition_unix}>\n{target_unix}\n </{eventKey}>{NewLine}" +
+ $" <{eventKey} {condition_windows}>{NewLine}{target_windows}{NewLine} </{eventKey}>";
+ return result;
+ }
+
void AddProjectReference (StringBuilder refs, VsCsproj result, MsbuildGenerator match, string r, string alias)
{
refs.AppendFormat (" <ProjectReference Include=\"{0}\">{1}", GetRelativePath (result.csProjFilename, match.CsprojFilename), NewLine);
</project>
<project dir="class/System" library="System-basic">
<boot>true</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/basic/System.Xml.dll -r:./../../class/lib/basic/System.Configuration.dll -r:MonoSecurity=./../../class/lib/basic/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/basic/System.Xml.dll -r:./../../class/lib/basic/System.Configuration.dll -r:MonoSecurity=./../../class/lib/basic/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/basic/System.dll</library_output>
</project>
<project dir="class/System" library="System-build">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/build/System.Xml.dll -r:./../../class/lib/build/System.Configuration.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/build/System.Xml.dll -r:./../../class/lib/build/System.Configuration.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/build/System.dll</library_output>
</project>
<project dir="class/System" library="System-bare-build">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/build/bare/System.dll</library_output>
</project>
<project dir="class/System" library="System-secxml-build">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/build/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/build/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/build/secxml/System.dll</library_output>
</project>
<project dir="class/System" library="System-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Configuration.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Configuration.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/System.dll</library_output>
</project>
<project dir="class/System" library="System-tests-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
<output>net_4_x_System_test.dll</output>
<built_sources></built_sources>
<library_output>net_4_x_System_test.dll</library_output>
</project>
<project dir="class/System" library="System-bare-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/bare/System.dll</library_output>
</project>
<project dir="class/System" library="System-tests-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
<output>net_4_x_System_test.dll</output>
<built_sources></built_sources>
<library_output>net_4_x_System_test.dll</library_output>
</project>
<project dir="class/System" library="System-secxml-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/net_4_x/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/net_4_x/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/secxml/System.dll</library_output>
</project>
<project dir="class/System" library="System-tests-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
<output>net_4_x_System_test.dll</output>
<built_sources></built_sources>
<library_output>net_4_x_System_test.dll</library_output>
<boot></boot>
<flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -r:System.Xml -r:System</flags>
<output>mconfig.exe</output>
- <built_sources>Mono.MonoConfig/consts.cs</built_sources>
+ <built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/mconfig.exe</library_output>
<fx_version>4.5</fx_version>
<profile>net_4_x</profile>
# we don't run the test suite on Windows PRs, we just ensure the build succeeds, so end here
fi
${TESTCMD} --label=mini --timeout=5m make -w -C mono/mini -k check
-${TESTCMD} --label=runtime --timeout=140m make -w -C mono/tests -k test-wrench V=1 CI=1
+${TESTCMD} --label=runtime --timeout=160m make -w -C mono/tests -k test-wrench V=1 CI=1
${TESTCMD} --label=corlib --timeout=30m make -w -C mcs/class/corlib run-test
${TESTCMD} --label=verify --timeout=15m make -w -C runtime mcs-compileall
${TESTCMD} --label=profiler --timeout=30m make -w -C mono/profiler -k check
.stamp-clone:
@if [ ! -d $(CPPSHARP_DIR) ]; then \
- git clone git@github.com:xamarin/CppSharpBinaries.git $(CPPSHARP_DIR) && touch $@; \
+ git clone git://github.com/xamarin/CppSharpBinaries.git $(CPPSHARP_DIR) && touch $@; \
fi
MonoAotOffsetsDumper.exe: .stamp-clone MonoAotOffsetsDumper.cs $(MONO_OPTIONS_SRC)