diff --git a/1.3/Assemblies/0Harmony.dll b/1.3/Assemblies/0Harmony.dll index 8fe8dc5..3a1b6d4 100644 Binary files a/1.3/Assemblies/0Harmony.dll and b/1.3/Assemblies/0Harmony.dll differ diff --git a/1.3/Assemblies/0Harmony.xml b/1.3/Assemblies/0Harmony.xml index 639dee4..ba2f340 100644 --- a/1.3/Assemblies/0Harmony.xml +++ b/1.3/Assemblies/0Harmony.xml @@ -713,7 +713,7 @@ - The opcode + The opcode @@ -721,11 +721,11 @@ - All labels defined on this instruction + All labels defined on this instruction - All exception block boundaries defined on this instruction + All exception block boundaries defined on this instruction @@ -882,6 +882,7 @@ Searches the current assembly for Harmony annotations and uses them to create patches + This method can fail to use the correct assembly when being inlined. It calls StackTrace.GetFrame(1) which can point to the wrong method/assembly. If you are unsure or run into problems, use PatchAll(Assembly.GetExecutingAssembly()) instead. @@ -966,6 +967,18 @@ Gets all patched original methods in the appdomain An enumeration of patched original methods/constructors + + + Gets the original method from a given replacement method + A replacement method, for example from a stacktrace + The original method/constructor or null if not found + + + + Tries to get the method from a stackframe including dynamic replacement methods + The + For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found + Gets Harmony version for all active Harmony instances @@ -1695,6 +1708,10 @@ Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type + + Enumerates all assemblies in the current app domain, excluding visual studio assemblies + An enumeration of + Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise The name @@ -1712,6 +1729,10 @@ + + Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies + An enumeration of all in all assemblies, excluding visual studio assemblies + Applies a function going up the type hierarchy and stops at the first non-null result Result type of func() @@ -1979,7 +2000,8 @@ The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The runtime instance to access the field (ignored and can be omitted for static fields) A readable/assignable reference to the field @@ -2002,11 +2024,13 @@ are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters. - Similarly, is not required to be the field's field type, unless that type is a value type. + Similarly, is not required to be the field's field type, unless that type is a non-enum value type. It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class. This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values. + Special case for enum types: can also be the underlying integral type of the enum type. Specifically, for reference types, must be assignable from - the field's field type; and for value types, must be exactly the field's field type. + the field's field type; for non-enum value types, must be exactly the field's field type; for enum types, + must be either the field's field type or the underyling integral type of that field type. This delegate supports static fields, even those defined in structs, for legacy reasons. @@ -2021,7 +2045,8 @@ The class that defines the instance field, or derived class of this type The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The name of the field A readable/assignable delegate @@ -2038,7 +2063,8 @@ The class that defines the instance field, or derived class of this type The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The instance The name of the field @@ -2060,7 +2086,8 @@ Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The type that defines the field, or derived class of this type; must not be a struct type unless the field is static @@ -2090,7 +2117,8 @@ The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The field A readable/assignable delegate @@ -2119,7 +2147,8 @@ The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The instance The field @@ -2142,7 +2171,8 @@ The struct that defines the instance field The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type A reference to the runtime instance to access the field A readable/assignable reference to the field @@ -2153,7 +2183,8 @@ The struct that defines the instance field The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The name of the field A readable/assignable delegate @@ -2164,7 +2195,8 @@ The struct that defines the instance field The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The instance The name of the field @@ -2183,7 +2215,8 @@ The struct that defines the instance field The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The field A readable/assignable delegate @@ -2200,7 +2233,8 @@ The struct that defines the instance field The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The instance The field @@ -2218,7 +2252,8 @@ A readable/assignable reference delegate to a static field The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type A readable/assignable reference to the field @@ -2228,7 +2263,8 @@ The type (can be class or struct) the field is defined in The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The name of the field A readable/assignable reference to the field @@ -2238,7 +2274,8 @@ Creates a static field reference The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The type (can be class or struct) the field is defined in The name of the field @@ -2250,7 +2287,8 @@ An arbitrary type (by convention, the type the field is defined in) The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The field A readable/assignable reference to the field @@ -2264,7 +2302,8 @@ Creates a static field reference delegate The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from the field's type + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type The field A readable/assignable delegate @@ -2354,6 +2393,12 @@ The class/type The new instance + + + Creates an (possibly uninitialized) instance of a given type + The class/type + The new instance + @@ -2362,7 +2407,7 @@ Makes a deep copy of any object - The type of the instance that should be created + The type of the instance that should be created; for legacy reasons, this must be a class or interface The original object A copy of the original object but of type T diff --git a/1.3/Assemblies/Rimatomics.dll b/1.3/Assemblies/Rimatomics.dll index bcfb173..978a8ee 100644 Binary files a/1.3/Assemblies/Rimatomics.dll and b/1.3/Assemblies/Rimatomics.dll differ