summaryrefslogtreecommitdiff
path: root/src/vm/metasig.h
AgeCommit message (Collapse)AuthorFilesLines
2019-03-18Add Utf8String skeleton (#23209)Levi Broderick1-0/+14
Utf8String is an experimental type that is string-like (heap-allocated, immutable, variable-length, null-terminated) but whose inner representation is UTF-8, not UTF-16. This is a skeleton implementation of the basic API shape. The ecosystem of APIs has not yet been built around it. All Utf8String-related code is currently surrounded by ifdefs to allow easy identification and removal from release branches.
2019-03-04Remove loose dependency in runtime on System.ComponentModel. (#23010)Aaron Robinson1-8/+3
Remove loose dependency in runtime on System.ComponentModel. Disable test to sync with CoreFX
2019-01-23Move common ThreadPool code to shared CoreLib partition. (#22115)Filip Navara1-1/+1
* Move common ThreadPool code to shared CoreLib partition. * Move numWorkingThreads counting out of shared code. * Rename ThreadPoolGlobals.vmTpInitialized to threadPoolInitialized. Remove exception handling from ThreadPoolWorkQueue.Dispatch. Remove obsolete code from ThreadPoolWorkQueue.Dispatch. Rename ThreadPool.EnsureVMInitialized to ThreadPool.EnsureInitialized.
2019-01-20Cleanup array related FCalls (#22097)Jan Kotas1-1/+1
* Cleanup Array FCalls * Disable outdated CoreFX tests https://github.com/dotnet/corefx/pull/34700
2019-01-18Add Per-assembly Load Native Library callbacks (#21555)Swaroop Sridhar1-0/+1
Add Per-assembly Load Native Library callbacks This Change implements the Native Library resolution Call-backs proposed in https://github.com/dotnet/corefx/issues/32015
2019-01-12Add NativeLibrary Resolve Event (#21929)Swaroop Sridhar1-0/+1
This change adds the Native library resolving event, to be raised as the last attempt to resolve a native DLL in an AssemblyLoadContext. With this change, the DllImport resolution sequence is as follows (stopping at any step with successful resolution): * If the invoking-assembly is not in the default load context, call AssemblyLoadContext.LoadUnmanagedDll() * Run the default load logic, try loading from: * AppDomain cache * NATIVE_DLL_SEARCH_DIRECTORIES * Invoking-assembly directory, System32, etc. based on DllImportSearchPaths * Raise the ResolvingUnmanagedDll event API Review: https://github.com/dotnet/corefx/issues/32850 The ResolveEventTests triggered a pre-existing bug in the exception handling code (#21964). Disabling the test on ARM64 Windows until the issue is fixed.
2019-01-03Cleanup current culture handling in the unmanaged runtime (#21706)Jan Kotas1-3/+2
Large portion of the current culture handling in the unmanaged runtime inherited from desktop has been no-op. The nativeInitCultureAccessors QCall that it used to depend on desktop got (almost) never called in CoreCLR. - Delete resetting of current culture on threadpool threads. It was needed in desktop because of a very tricky flow of current culture between appdomains. It is superseded by the flowing the current culture via AsyncLocal in CoreCLR. - Comment out fetch of managed current culture for unmanaged resource lookup. It has number of problems that are not easy to fix. We are not localizing the unmanaged runtime currently anyway, so it is ok to just comment it out. - Fix the rest to call CultureInfo directly without going through Thread.CurrentThread
2019-01-01strlen to managed code and vectorize (#21729)Ben Adams1-0/+1
2018-12-10Refactor internal System.AppDomain out of CoreLib (#21460)Jan Kotas1-16/+4
Fixes #21028
2018-12-03Refactor all FCalls out of AppDomain.cs (#21337)Jan Kotas1-1/+1
This saves the unmanaged->managed->unmanaged trip to initialize the assembly binder. Includes small bits of unrelated cleanup.
2018-11-22Delete System.AppDomainSetup (#21157)Jan Kotas1-1/+1
* Delete System.AppDomainSetup Contributes to #21028 * Add test hook for null entry assembly * Validate that the binder paths are absolute
2018-11-16Add explicit signatures for Span indexerJan Kotas1-1/+10
Fixes #21032 and #20958
2018-11-10Keep delegate fields alive across a full native call (#20896)Jeremy Koritzinsky1-4/+5
* Repurpose CleanupWorkList to also preserve delegate references in structs across the full native call. * Change CleanupWorkListElement to abstract base class instead of interface. * Make CleanupWorkList a singlely linked list. * PR Feedback. * Remove CleanupWorkList and make CleanupWorkListElement be able to represent the full list. * Add back throw in SafeHandle field marshalling. * PR feedback.
2018-10-23Add support for IDispatch in CoreCLRAaron Robinson1-0/+1
Reduce some TypeInfo API cruft Throw exception on non-Windows ABIs for value types
2018-06-26Add VM support for Unsafe.AsRef(in T)Jan Kotas1-0/+2
2018-03-08Move String to shared corelib partition (#16749)Jan Kotas1-0/+3
2018-02-03Fix failfast stacktrace (#15895)Sung Yoon Whang1-0/+1
* attempt to fix stacktrace getting printed twice * Fix some default parameter issues, and wrong commit from last commit * Fix build errors, switch call from Debug.Assert to new FailFast FCall * Fix signature to allow more types of exception title * cleanup * Addressing comments from PR * More PR comments * remove useless using * Address comments on GC hole and few naming changes
2018-01-25Compute System.Private.CoreLib roots required by the runtime. (#15525)Eugene Rozenfeld1-0/+3
Embed the result as a System.Private.CoreLib.dll xml resource for consumption by ILLink. Update mscorlib.h to make several dependencies explicit. The actual msbuild task lives in the linker repo: https://github.com/mono/linker/blob/master/corebuild/integration/ILLink.Tasks/CreateRuntimeRootDescriptorFile.cs
2017-12-15Convert uses of the Dangerous APIs to use MemoryMarshal.GetReference (#15532)Ahson Khan1-1/+1
* Convert uses of the Dangerous APIs to use MemoryMarshal.GetReference * Adding Unsafe.AsRef(in...) and using that for ReadOnlySpan GetReference * Fix typo - add missing bracket. * Change AsRef(ref...) to AsRef(in...) * Remove unnecessary whitespace * Remove Unsafe.AsRef(in...) and its uses. * Revert "Remove unnecessary whitespace" This reverts commit 4dbe38cae472e868f74afbabde358f3a7609f6ae. * Revert "Revert "Remove unnecessary whitespace"" This reverts commit 44d79483423ac9ffcf7c566b79d4a42c6aa15dac. * Remove extra space to fix formatting.
2017-12-14Adding Unsafe API Add nuint that is used by SpanHelpers (#15527)Ahson Khan1-0/+1
* Adding Unsafe API Add nuint that is used by SpanHelpers * Change elementOffset to IntPtr in method signature.
2017-08-31Adding {ReadOnly}Memory, OwnedMemory, MemoryHandle, and IRetainable (#13583)Ahson Ahmed Khan1-0/+5
* Adding {ReadOnly}Memory<T>, OwnedMemory<T>, MemoryHandle, and IRetainable. * Adding types {ReadOnly}Memory<T>, OwnedMemory<T>, MemoryHandle, and IRetainable. * Adding Unsafe.As and Unsafe.Add + other fixes of build errors * Addressing PR feedback. * Add a check for length > 0 before indexing the array. * Removing use of Unsafe.As and changing signature to RefTFrom_RetRefTTo. * Fixing metasig definition. * Removing unnecessary call to Unsafe.Add.
2017-08-17Fix AssemblyName(string) constructor's version parsing (#13373)Koundinya Veluri1-0/+2
Fix AssemblyName(string) constructor's version parsing Functional fix for https://github.com/dotnet/corefx/issues/22663 - Allow fewer version components - Match .NET Framework behavior in several cases. Major and minor version must be specified for the version to be used. - Used zero for unspecified build/revision. This is different from .NET Framework but the loader also behaves differently. Details are in code comments.
2017-07-28Add String(ReadOnlySpan<char>) ctorStephen Toub1-0/+2
2017-07-28Add generic encoding support to metasigJan Kotas1-0/+6
2017-05-17Finish deleting dead CAS code from CoreLib (#11436)Jan Kotas1-8/+1
Fixes #9321 and deletes CleanupToDoList.cs Delete unmanaged security implementation
2017-02-27Add Unsafe.ReadUnaligned/WriteUnaligned (#9808)mikedn1-0/+4
2017-02-15Remove never defined FEATURE_SERIALIZATIONdanmosemsft1-5/+0
2017-02-14Remove never defined FEATURE_REMOTINGdanmosemsft1-24/+0
2017-02-14Remove never defined FEATURE_IMPERSONATIONdanmosemsft1-4/+0
2017-02-12Remove never defined FEATURE_COMPRESSEDSTACKdanmosemsft1-7/+2
2017-02-12Remove never defined FEATURE_COMINTEROP_REGISTRATIONdanmosemsft1-3/+0
2017-02-12Remove always defined FEATURE_SYNCHRONIZATIONCONTEXT_WAITdanmosemsft1-2/+0
2017-02-12Remove always defined FEATURE_HOST_ASSEMBLY_RESOLVERdanmosemsft1-2/+0
2017-02-10Remove always undefined FEATURE_CAS_POLICYdanmosemsft1-6/+0
2017-02-10Remove always defined FEATURE_CORECLRdanmosemsft1-4/+0
2017-02-10Remove always undefined FEATURE_APTCAdanmosemsft1-3/+0
2017-02-06CAS Security cleanup (#9355)Jan Kotas1-58/+0
2016-10-12Return false from IsMarshalByRefImpl/IsContextfulImpl when remoting is not ↵Jan Kotas1-0/+3
supported (#7583) Remove references to types have been moved to corefx in the build Consolidate FEATURE_CORECLR ifdefs
2016-05-23Add missing #ifdef FEATURE_ICASTABLEJan Kotas1-0/+2
[tfs-changeset: 1607333]
2016-05-19Fix x86 only ICastable feature bug.Yi Zhang1-2/+2
When we call ICastable.IsInstanceOfInterface, we treat RuntimeTypeHandle as a OBJECTREF, which is incorrect as-per x86 calling convention since RuntimeTypehandle is a struct that contains a RuntimeType ref field and needs to be passed in stack. Our VM simple call helpers CALL_MANAGED_METHOD doesn't handle this correctly (it does the simple thing that always assume all the arguments are passed in register first). I'm fixing this by using a static method that takes RuntimeType instead of RuntimeTypeHandle, then convert it to RuntimeTypehandle. Also switch to use PREPARE_NONVIRTUAL_CALLSITE(METHODID) as per Jan's suggestion. ICastable test is now enabled in x86 for both JITs.
2016-01-27Update license headersdotnet-bot1-4/+3
2016-01-19Add generic detection of Stream.{Begin|End}{Read|Write} overridesJan Kotas1-0/+4
2015-11-08Expose Environment.GetCommandLineArgs in mscorlibPallavi Taneja1-0/+1
[tfs-changeset: 1546251]
2015-03-18Implement runtime support for ICastable interfaceEugene Zemtsov1-2/+5
The goal of this change is to facilitate an alternative (MCG based) way of doing COM interop, we're going to use it on Unix platforms. New ICastable interface allows objects to pretend at runtime that they support an interface and to provide an alternative type that is used to resolve actual calls to interface methods. BE VERY CAREFUL: This is a very dangerous feature, and at this stage it can easily lead to memory corruption without any native code involved. Reviewers: Yi Zhang, Noah Falk, Jan Kotas. DDR clean. [tfs-changeset: 1435198]
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+722
[tfs-changeset: 1407945]