Commit Graph

82 Commits

Author SHA1 Message Date
Katy Coe
a007b128fb Model: Add MethodImplementationFlags 2021-01-08 22:23:29 +01:00
Katy Coe
e9a66b98d4 Model: Add PropertyAttributes 2021-01-08 22:23:29 +01:00
Katy Coe
bca8baceb9 Model: Copy member attribute flags directly 2021-01-08 22:23:29 +01:00
Katy Coe
71be0f2af2 Update year in copyright messages 2021-01-04 05:26:43 +01:00
Katy Coe
7c65d2c741 Model: Eliminate no-longer needed thread lock in CAD 2020-12-30 09:16:25 +01:00
Katy Coe
b004b8195b Model: Fix crash in ResolveGenericArguments with 32-bit binary rebased above 0x80000000 (#119) 2020-12-30 08:25:01 +01:00
Katy Coe
5dc8e823c4 Plugins: Add IPostProcessTypeModel 2020-12-21 19:11:49 +01:00
Katy Coe
b1d61f81f0 Model: Allow Name to be changed by plugins 2020-12-21 19:02:03 +01:00
Katy Coe
3ddf04eafc Model: Don't crash on obfuscated assembly or namespace strings 2020-12-08 15:37:24 +01:00
Katy Coe
7289001933 IL2CPP: Add Unity 2021.1 TODOs 2020-11-26 21:42:36 +01:00
Katy Coe
4a75291140 C#: Output floats and doubles with InvariantCulture (#82) 2020-10-13 08:32:38 +02:00
Katy Coe
ac17a3a510 C#: Fix handling of scoped names pointing to global:: scope 2020-09-14 12:28:00 +02:00
Katy Coe
27b9b290da C#/C++: Handle Unicode characters in identifiers 2020-09-14 12:27:12 +02:00
Katy Coe
ff7110144a C#: Sanitize parameter names (#70) 2020-09-14 12:26:37 +02:00
Katy Coe
47cd6b928b C#: Sanitize method names (#70) 2020-09-14 12:25:52 +02:00
Katy Coe
fcbfc65204 C#: Sanitize type names (#70) 2020-09-14 05:02:47 +02:00
Katy Coe
8d015c8271 C#: Sanitize field and event names (#70) 2020-09-13 15:04:02 +02:00
Katy Coe
e511b99dec Model: UnmangledBaseName / CSharpSafeName refactoring (#70) 2020-09-13 14:51:20 +02:00
Katy Coe
54ac9d7c1a IL2CPP: Fix crash when loading Il2CppCodeGenModule with no concrete methods (#58) 2020-08-22 03:30:17 +02:00
Katy Coe
5828ed106b Model/C#: Provide FieldHasRVA flag; output metadata preview for static array initializer implementations (#59) 2020-08-22 03:14:11 +02:00
Katy Coe
4b86087c7a Allow longs to call ToAddressString() (as well as ulongs) 2020-08-17 01:43:52 +02:00
Katy Coe
ec6066aa1d Model: Handle generic type definition fetch for metadata v27 2020-08-16 01:13:27 +02:00
Katy Coe
1f738a60c6 IL2CPP: Load metadata v27; mark broken areas with TODO 2020-08-15 06:28:48 +02:00
Katy Coe
99a7e2e8cb C#: Output async keyword for async methods (and suppress AsyncStateMachine) 2020-08-14 03:33:41 +02:00
Katy Coe
87de370a3a Model: Add Model.CustomAttributeGeneratorsByAddress 2020-08-09 21:35:55 +02:00
Katy Coe
84f82474eb Refactor Model.CustomAttributeGenerators to give list of unique VAs per TypeInfo 2020-08-09 21:32:43 +02:00
Katy Coe
a252800052 Model: Add GetMethodBody() to CustomAttributeData and MethodInvoker 2020-08-09 20:53:10 +02:00
Katy Coe
ea8a18353a Model: Change CustomAttributeData.VirtualAddress to be non-nullable 2020-08-09 20:44:13 +02:00
Katy Coe
3fb0b085da Model: Add Scope.Empty static helper 2020-08-09 19:24:54 +02:00
Katy Coe
bdb9f7935b Model: Allow null namespace list in Scope for getScopedFullName() 2020-08-09 19:24:41 +02:00
Katy Coe
508c35135b Model: Add unique custom attributes generator list (CustomAttributesGenerators) 2020-08-09 19:23:57 +02:00
Katy Coe
212c01745c Model: Don't crash on GetCustomAttributes(TypeInfo) if Definition is null (arrays, generics etc.) 2020-08-09 18:07:46 +02:00
Katy Coe
2f3b0d7276 AppModel/IDA: Typed MethodInvokers for 5.3.0-5.6.7 don't use Il2CppMethodPointer 2020-07-20 22:48:40 +02:00
Katy Coe
e37de64839 AppModel/C++: Fix regression in handling of C# primitive pointer types 2020-07-20 18:15:41 +02:00
Katy Coe
071b1efa67 C++: Generate Il2CppClass definitions for enum and array types 2020-07-19 15:43:50 +02:00
Katy Coe
307cf29dcd C++: Re-factor custom attribute generator signature handling 2020-07-18 03:33:33 +02:00
Katy Coe
d1501db903 IDA: Produced typed RuntimeInvoker methods 2020-07-17 04:29:38 +02:00
Katy Coe
873a6c98f6 AppModel: First iteration of ApplicationModel API
Integrate with C++ scaffolding
Add new tests
Rename Il2CppModel to TypeModel
Incomplete IDAPython integration
CLI and GUI support
Update README.md
2020-07-09 03:48:50 +02:00
Robert Xiao
de6d9e2230 Move duplicated sanitizeIdentifier to Extensions
Also ensure that the identifier always starts with an underscore or
letter, which fixes issues with obfuscated identifiers.
2020-06-29 22:10:45 +02:00
Robert Xiao
3ccbab2461 Add/modify copyright notices 2020-06-29 22:10:45 +02:00
Robert Xiao
4ba48b9c75 Add generics support to TypeInfo.GetVTable
This patch fixes TypeInfo.GetVTable so that it specializes the vtable
for generic type instances. Also fix a minor bug in PropertyInfo that
would pass null pointers to GetMethodByDefinition.
2020-06-29 22:10:45 +02:00
Katy Coe
181d3ad600 CS: Don't output redundant interfaces in type declarations 2020-06-22 22:56:26 +02:00
Katy Coe
42310483af CS: Fix "Namespace used like type" (CS0118) (needs additional work) 2020-06-22 22:35:52 +02:00
Katy Coe
ef22c6628b CS: Fix enumeration scoping on default field values (CS0103) 2020-06-22 18:38:16 +02:00
Katy Coe
2791721dd1 Model: Implement MethodBase.GetMethodBody() 2020-06-22 17:35:23 +02:00
Katy Coe
9c51e72cc2 CS: Fix representation of Infinity and NaN 2020-06-20 21:26:29 +02:00
Katy Coe
e0fe7fa1b9 CS: Add unsafe modifier to struct constructors where necessary (CS0214) 2020-06-20 21:11:03 +02:00
Katy Coe
d479431585 Model: Add FieldInfo.RequiresUnsafeContext 2020-06-20 20:43:06 +02:00
Katy Coe
ed1d80aa15 CS: "unsafe" goes after "static" to avoid IntelliSense notice 2020-06-20 20:34:51 +02:00
Robert Xiao
44df54b639 Suppress new on operator methods.
Per the C# language reference
(https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/basic-concepts#hiding-through-inheritance):

> The rules governing operator declarations (Operators) make it
> impossible for a derived class to declare an operator with the same
> signature as an operator in a base class. Thus, operators never hide
> one another.

Therefore, new is not necessary or permitted on operators, even if the
method signatures are identical. This situation can arise if, for
example, an explicit conversion operator from the same target class
exists in both a base class and a derived class.
2020-06-20 10:17:48 +02:00