Alex Corrado
6825982069
Minor CppTypeInfo clean up. Add HasVTable property
14 years ago
Alexander Corrado
bf12d1cd84
Mangling support for namespaces; generate MangleAs attribute on interfaces
15 years ago
Alex Corrado
a69511b6e6
Account for alignment when calculating NativeSize, and fix bug with cloning base CppTypeInfos.
15 years ago
Alexander Corrado
3d6f6f214c
Correctly adjust vtable indexes to account for removed duplicates
...
(see commit ec4699b for explanation of problem)
15 years ago
Alexander Corrado
9b4206c960
Fix vtable layout for classes derived from classes with non-primary bases
15 years ago
Alexander Corrado
6cdba21cf6
Base derived type's initial gchandle delta off primary base's
15 years ago
Alexander Corrado
abbcad5411
Refactor CppAbi to move fields related to the type being emitted into CppTypeInfo
15 years ago
Alex Corrado
9b137abc10
Forgot to offset derived type's gchandle offset
15 years ago
Alex Corrado
ca23db9c92
Wrappers can now override virtual methods from non-primary bases
15 years ago
Alex Corrado
f994b3f338
Initial support for downcasting wrappers from non-primary base to subclass
15 years ago
Alex Corrado
891d799cbc
Sexy new name, cxxi
15 years ago
Alex Corrado
6a8bec014e
Fixes for virtual dispatch for multiple inheritance.
...
+ Fix Itanium vtable layout: derived type's virtual methods come after primary base's but before the rest of the base classes'
+ Wrapper cleanup: move common init code to methods, cache all casted base wrappers right away in preparation for patching base-in-derived vtptrs
+ CppInstancePtr: read native_vtptr when constructed with native ptr-- will need hash lookup to detect managed instances
+ Clean/refactor LazyGeneratedList
15 years ago
Alex Corrado
0febce15f3
Begin hacking on per-instance vtptr. More failing tests.
15 years ago
Alex Corrado
b8bba69a81
Correctly generate managed override trampolines for native subclass wrappers
15 years ago
Alex Corrado
a74d9393e6
Initial support for calling virtual methods of non-primary base classes
15 years ago
Alex Corrado
cc5623da09
Stubbed CppTypeInfo.Cast<TBase>(ICppObject subClass)
15 years ago
Alex Corrado
179207fb18
Implement better metadata sharing among types whilst they are being emitted.
...
Implement correct Itanium pass-by-value and return-by-value semantics.
15 years ago
Alex Corrado
4c73c29878
Make certain CppTypeInfo properties read-only
15 years ago
Alex Corrado
94cf0c5afd
Manually merge d28bc89..faa6350
15 years ago
Alexander Corrado
37348611c7
Clarify
15 years ago
Alexander Corrado
65edb53892
Fix issues when base class virtual methods are prepended into primary vtable.
15 years ago
Andreia Gaita
640ca8a181
Add license and license headers
15 years ago
Zoltan Varga
bbf5789cab
Rewrite pinvoke marshalling to fix support for passing classes by ref/by value, and returning classes by value. Add support for inline methods. Fix some minor bugs.
15 years ago
Zoltan Varga
c6c8291b41
Convert spaces to tabs.
15 years ago
Andreia Gaita
a478c3030f
reorganize things
15 years ago
alexander.corrado
8525dd03c6
Many changes to support generator. Factored CppType creating new CppModifiers class instead of enum with support for template parameters. Generator now almost produces usable code out of the box, including automatic property generation and preliminary support for wrapping templated C++ types in generic managed classes.
...
git-svn-id: https://mono-soc-2010.googlecode.com/svn/trunk/cppinterop@117 a470b8cb-0e6f-1642-1b45-71e107334c4b
16 years ago
alexander.corrado
14e5a64fdb
Refined mechanism for representing C++ inheritance that enables more accurate calculation of native class size. Lazy generation and caching of delegate types.
...
git-svn-id: https://mono-soc-2010.googlecode.com/svn/trunk/cppinterop@95 a470b8cb-0e6f-1642-1b45-71e107334c4b
16 years ago