Граф коммитов

166 Коммитов

Автор SHA1 Сообщение Дата
Alex Corrado 4561c6182c Move qt into examples directory and don't build examples by default. Fix tests build 2011-12-15 02:57:12 -05:00
Alex Corrado 9f574493c1 [generator] Get correct native layout size when a field is typed as a class by value 2011-12-15 02:56:53 -05:00
Alex Corrado 7662dd4430 [generator] Correctly handle fields that are fixed-length arrays 2011-12-15 02:49:09 -05:00
Alex Corrado 8f2dbdc3ae Remove more bitrot to fix the build 2011-12-05 02:28:27 -05:00
Alex Corrado ce9d2e262b [CppField] Add support for IntPtr fields 2011-12-05 02:24:15 -05:00
Alex Corrado eb59e306c2 [ItaniumAbi] Flesh out mangling type codes a bit 2011-12-05 01:59:24 -05:00
Alex Corrado fb85e5a3ed Experimental support for initing the native vtptr ourselves (enable with -define:INIT_NATIVE_VTABLES)
Doing this ourselves instead of depending on the C++ ctor to do it will allow us to instantiate classes that have vtables and do not explicitly define any constructors (thus only having the C++ implicitly-defined default constructor, which isn't exported as a symbol in the lib).
2011-12-05 01:10:21 -05:00
Alex Corrado aefe6e0e2a Remove some bitrot 2011-12-04 21:36:02 -05:00
Alex Corrado 6825982069 Minor CppTypeInfo clean up. Add HasVTable property 2011-12-03 18:11:40 -05:00
Alex Corrado 58566ee37c [ItaniumAbi] Improve compression in name mangling 2011-11-30 12:03:57 -05:00
Alex Corrado 1317b0e9cf [generator] Fix nested classes in C# template 2011-11-28 01:54:14 -08:00
Alex Corrado f008291cbe Fix issue with value types that don't implement ICppObject 2011-11-16 18:53:57 -05:00
Alex Corrado 5d096f616b Commit last qt bindings work from the summer 2011-11-15 15:21:25 -05:00
Alexander Corrado 73fb2eb2a1 Fix ICppObject native-to-managed marshaling when there is no vtable 2011-08-22 02:22:08 -04:00
Alexander Corrado bf12d1cd84 Mangling support for namespaces; generate MangleAs attribute on interfaces 2011-08-22 01:10:54 -04:00
Alexander Corrado d1231ca335 Stub in mangling tests with a failing Itanium compression test case. 2011-08-21 18:29:39 -04:00
Alexander Corrado 588165294d Generator: add support for enums and namespaces 2011-08-21 04:32:10 -04:00
Alexander Corrado ade252db80 CppType: value types and IEnumerable<CppModifiers> 2011-08-21 04:29:24 -04:00
Alex Corrado a69511b6e6 Account for alignment when calculating NativeSize, and fix bug with cloning base CppTypeInfos. 2011-08-16 00:46:01 -04:00
Alex Corrado 6b01512bee If InlinePolicy is "NotPresent," do not add those methods to the generated wrapper (unless they are virtual). Make things prettier :) 2011-08-16 00:43:43 -04:00
Alexander Corrado 961a351592 Remove auto-generated warning from handwritten file 2011-08-15 03:47:10 -04:00
Alexander Corrado 6a2a76216a Generator: make interfaces partial, make filter files more expressive. Update qt bindings to build correctly out of the box 2011-08-15 03:39:12 -04:00
Alexander Corrado cb888f8440 Hack up the build 2011-08-15 03:19:44 -04:00
Alexander Corrado bdd77ead03 Reorganize Qt bindings 2011-08-15 03:17:35 -04:00
Alexander Corrado a7770c3ab4 Oops that was only a mem leak for value types! 2011-08-14 20:54:56 -04:00
Alexander Corrado c4a9e3a940 Fix invalid IL and memory leak returning by value (Itanium) and/or as value type 2011-08-14 17:45:50 -04:00
Alex Corrado ee88d0caed Add partial methods BeforeDestruct and AfterDestruct as hooks to help customize generated wrappers 2011-08-11 20:55:42 -04:00
Alexander Corrado 3d6f6f214c Correctly adjust vtable indexes to account for removed duplicates
(see commit ec4699b for explanation of problem)
2011-08-11 02:51:33 -04:00
Alexander Corrado ec4699bed2 Test when an inherited virtual member is overridden and listed in a derived class's interface definition
This was causing problems because the method is not repeated in the primary vtable (it shows up in the position expected by the base class), but CppAbi does not know that it is inherited until after the impl has been emitted, so it emits the index that it is listed in the derived class.

Note that the generator only does this with virtual destructors (since we never call these virtually).
2011-08-11 02:02:25 -04:00
Alexander Corrado 14a7c4782b Implement MethodSignature.ToString 2011-08-11 01:58:14 -04:00
Alexander Corrado 9b4206c960 Fix vtable layout for classes derived from classes with non-primary bases 2011-07-24 12:23:42 -04:00
Alexander Corrado 6cdba21cf6 Base derived type's initial gchandle delta off primary base's 2011-07-24 06:08:13 -04:00
Alexander Corrado b9b2232c95 Call __cxxi_InitBases in derived types 2011-07-24 04:25:45 -04:00
Alexander Corrado 29aa72f872 FIXME: Managed override tramps need to support Itanium's return byval hidden argument 2011-07-24 04:23:52 -04:00
Alexander Corrado da3a8dbea4 Generator: correctly deal with arbitrarily long inheritance chains 2011-07-23 17:13:12 -04:00
Alexander Corrado 1f6d968a12 Fix stack overflow 2011-07-23 15:00:10 -04:00
Alexander Corrado adfd69958f Misc fixes. Always generate all virtual methods in iface 2011-07-22 14:26:18 -04:00
Alexander Corrado 0d5dd66117 qt: add handwritten QString because generated version had problems 2011-07-22 03:04:03 -04:00
Alexander Corrado 474409c625 Do not always assume ICppObject; support structs too 2011-07-22 02:54:16 -04:00
Alexander Corrado abbcad5411 Refactor CppAbi to move fields related to the type being emitted into CppTypeInfo 2011-07-22 02:52:05 -04:00
db12e4ecc4 Generator: do not try to init bases in the subclass ctor 2011-07-22 02:40:34 -04:00
Alexander Corrado 815a07e155 CppType: better primitive mapping and support generic System.Types 2011-07-21 01:24:32 -04:00
Alexander Corrado f43eb3e050 Generator: fix property detection heuristics, fix ref arguments 2011-07-21 01:23:35 -04:00
f919eef6f9 Generator: support typedefs 2011-07-19 02:47:12 -04:00
0e070412a9 Refine Context a bit 2011-07-19 02:11:38 -04:00
b236465941 Add ByRef attribute for value types returned by ref and failing test 2011-07-19 01:20:54 -04:00
Alex Corrado 997f43cd73 Add failing CppField test 2011-07-18 21:38:53 -04:00
Alex Corrado ee3d4917e8 Generator cleanup: escape C# keywords when used as identifiers in
wrappers
2011-07-18 03:07:13 -04:00
Alex Corrado 9b137abc10 Forgot to offset derived type's gchandle offset 2011-07-17 18:28:20 -04:00
Alex Corrado ca23db9c92 Wrappers can now override virtual methods from non-primary bases 2011-07-17 17:59:42 -04:00