Ignacio Etcheverry
4172fa03b5
Mono: Fix property set_value and cleanup
2018-07-31 19:49:16 +02:00
Hein-Pieter van Braam
0e29f7974b
Reduce unnecessary COW on Vector by make writing explicit
...
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Ignacio Etcheverry
5aefe5d936
Mono: Fix null dereferences
2018-07-25 21:30:11 +02:00
Ignacio Etcheverry
ee3c476c9a
Add Array and Dictionary wrapper classes to C#
2018-07-20 01:44:30 +02:00
Rémi Verschelde
7c9f7452f4
Style: Format code with clang-format 6.0.1
2018-07-18 16:27:03 +02:00
Ignacio Etcheverry
4739cb8c00
Mono: Pending exceptions and cleanup
2018-07-04 03:08:29 +02:00
Ignacio Etcheverry
7933a6cc9f
Mono: Null checks when marshaling from MonoArray* and managed Dictionary
2018-06-05 22:14:32 +02:00
Fabio Alessandrelli
8e35d937a9
New sync keywords in GDScript, NativeScript, Mono
2018-05-29 20:26:41 +02:00
Max Hilbrunner
4c69a495c9
Revert "RPCMode refactor, more sync modes"
2018-05-29 11:47:52 +02:00
Max Hilbrunner
d0b62ce155
Merge pull request #19021 from Faless/rpc_sync_fix
...
RPCMode refactor, more sync modes
2018-05-29 09:44:03 +02:00
Ignacio Etcheverry
97fb999976
Mono: Fix MonoImage filename being set to an invalid path
2018-05-27 17:15:41 +02:00
Fabio Alessandrelli
a5e8a3be5e
New sync keywords in GDScript, NativeScript, Mono
2018-05-26 10:49:33 +02:00
Carter Anderson
56262ceafe
Reduce allocations when converting mono arrays to pool arrays
2018-05-20 18:18:06 -07:00
Daniele Giuliani
d315b0fb8a
added get_creation_time function for gdscript
2018-05-16 00:50:57 +02:00
Pieter-Jan Briers
ce4451b45f
assembly_load_hook fallback for registering GDMonoAssemblies.
...
Fixes #18029 .
There are ways to load assemblies that the search hook has no way of intercepting,
and handling itself. Such as loading from a byte[] in C# code.
We now handle these cases with a fallback assembly_load_hook,
to avoid crashes when this is indeed done.
2018-04-29 16:32:30 +02:00
Carter Anderson
91f271fa9e
Fix mono basis GetEuler bug and marshalling/unmarshalling
2018-03-24 13:45:11 -07:00
Ignacio Etcheverry
883afd1b4d
Merge pull request #17619 from neikeq/mono-runtime-main-args
...
Mono: Runtime main args and assembly search fixes
2018-03-18 23:16:44 +01:00
Ignacio Etcheverry
fa1d656af4
Mono: Runtime main args and assembly search fixes
...
- Setup runtime main args during initialization. This must be done manually by embedders who do not call mono_runtime_run_main. Fixes NullReferenceException in System.Environment.
- Continue to search the assembly in the rest of the search locations if loading it from one of them failed.
2018-03-18 23:07:04 +01:00
Paul Joannon
22606a7bec
[mono] add the 'Facades' subfolder to the searched directories in _preload_hook
2018-03-02 13:38:29 +01:00
Rémi Verschelde
a6d4438fab
Merge pull request #17075 from paulloz/fix-build-mono-debug-notools
...
[mono] fix build error when compiling with mono, tools=no, target=debug
2018-02-27 11:24:54 +01:00
Rémi Verschelde
75c7e66c5e
Merge pull request #15641 from neikeq/mono-is-picky-regarding-corlib-so-we-must-make-sure-to-ship-the-right-version-otherwise-something-bad-may-happen
...
Mono: Buildsystem improvements
2018-02-27 11:08:17 +01:00
Paul Joannon
90a705d671
fix build error when compiling with mono, tools=no, target=release
...
change TTR to RTR in `print_unhandled_exception`
2018-02-27 10:36:58 +01:00
Rémi Verschelde
1bd0fd90cc
Merge pull request #17046 from NathanWarden/fixed_mono_marshalling
...
[Mono] The marshalling *in* of Transform was also incorrect.
2018-02-26 22:42:31 +01:00
Nathan Warden
60daa9d718
The marshalling in was also incorrect.
2018-02-26 10:01:21 -05:00
Ignacio Etcheverry
f37090ccf4
Mono: Better versioning and gracefully unloading of Godot API assemblies
2018-02-25 20:56:27 +01:00
Paul Joannon
89af6c2cd7
[mono] get stacktraces for all inner exceptions
2018-02-24 21:18:06 +01:00
Ignacio Etcheverry
9fd606c549
Mono: Add project export plugin
2018-02-22 13:39:41 +01:00
Paul Joannon
7a72395412
[mono] fix signals parameter retrieval
2018-02-21 12:50:05 +01:00
Nathan Warden
72fe70272d
[Mono] Fixed "expression did not evaluate to a constant" compiler error for visual studio.
2018-02-20 00:24:52 -05:00
Ignacio Etcheverry
6e200b1fe0
Merge pull request #16326 from NathanWarden/fix_basis_mono
...
[Mono] Basis values now marshalled in the correct order.
2018-02-18 19:54:53 +01:00
Ignacio Etcheverry
dad47d8876
Merge pull request #16749 from PJB3005/18-02-16-project-manager-mono-debug-fix
...
Makes project manager never initialize mono debug.
2018-02-18 19:53:46 +01:00
Paul Joannon
cfbd7fd21e
implement signal related methods in csharp_script so signals can be used with emit
2018-02-17 19:37:02 +01:00
Paul Joannon
efd52cd172
add a [Signal] attribute to CSharpScripts
2018-02-17 19:29:26 +01:00
Pieter-Jan Briers
1099838079
Makes project manager never initialize mono debug.
...
The heuristic whether we're in the project manager inside GDMono
didn't work if the project manager was launched by not having any path
to run.
This is fixed now by making a Main::is_project_manager().
2018-02-16 16:15:35 +01:00
Nathan Warden
0cc4de1f24
[Mono] Basis values now marshalled in the correct order.
2018-02-02 16:45:30 -05:00
Paolo Perkovic
08d4bfacaf
Fix inconsistencies and typos in argument names
2018-02-01 16:47:20 +01:00
bruvzg
b3ddf12fb1
Mono: Allow loading `mscorlib` from resources.
2018-01-31 09:20:46 +02:00
Ignacio Etcheverry
562ec3f5e6
Mono: Don't defer call to dispose queue objects when finalizing domain
...
It's going to be called anyway after `mono_domain_finalize`.
This also prevents crashes, since the MessageQueue singleton could already be freed at this point (see: #15702 ).
2018-01-26 01:10:25 +01:00
Paul Joannon
76a615aea4
SignalAwaiter::_signal_callback was calling the thunk with a wrong pointer
2018-01-23 12:58:54 +01:00
Paul Joannon
1eb9c7e6cb
RID cached class was wrong (mono)
2018-01-22 14:01:20 +01:00
Paul Joannon
e0ce249621
fix GDMonoProperty::set_value
...
was calling getter and not setter
should close #15387
2018-01-21 12:29:49 +01:00
Paul Joannon
2dc6725cc4
remove an unneeded marshalling function
...
`Variant mono_object_to_variant(MonoObject*, const ManagedType&)`
2018-01-18 10:33:43 +01:00
Ignacio Etcheverry
a45697d8df
Mono: Buildsystem improvements
...
- Bundle with mscorlib.dll to avoid compatibilities issues
- Add build option 'mono_assemblies_output_dir' to specify the output directory where the assemblies will be copied to. '#bin' by default.
2018-01-12 22:44:22 +01:00
Ignacio Etcheverry
bff9627dc4
Mono: Some StackTrace to StackInfo[] fixes
...
- Sometimes `StackFrame.GetMethod()` returns null (e.g.: latest frame of a `MissingMethodException`). Still not sure what to do with that frame (maybe skip it), but at least it no longer fails.
- Skip `CSharpLanguage::debug_get_current_stack_info()` if an error is printed from `GDMonoUtils::update_corlib_cache()`.
- Fix crash when calling `GDMonoUtils::print_unhandled_exception(exc)` if there is no ScriptDebugger attached.
2018-01-12 19:31:15 +01:00
Ignacio Etcheverry
f7de51b3a6
Mono: Some fixes for #15463
2018-01-09 22:27:55 +01:00
Ignacio Etcheverry
5be356b72f
Mono: Implement stack info for errors and exceptions
2018-01-09 17:19:03 +01:00
Rémi Verschelde
0e6e98a65f
Fix build of GDMonoField
...
Closes #15385 .
2018-01-06 11:06:05 +01:00
Rémi Verschelde
e4213e66b2
Add missing copyright headers and fix formatting
...
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Ignacio Etcheverry
119a910bc6
Mono: Add properties support in scripts
2018-01-04 21:16:22 +01:00
Rémi Verschelde
b50a9114b1
Update copyright statements to 2018
...
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Ignacio Etcheverry
b271aa48e4
Mono: Script lifetime fixes
...
- alloc_language_binding: Use strong GC handle as well for references. Fixes #15138
- Set the native instance field of Godot.Object to IntPtr.Zero when it's freed.
- Create weak handles without tracking resurrection (that was causing trouble). This means we have to call notification predelete before queueing a native Object for deletion, and use the MonoObject* passed by the finalizer because the weak GC handle target will return NULL at this point.
2018-01-01 03:05:13 +01:00
Noshyaar
ab444a8ca9
Merge pull request #14996 from neikeq/enums-mono
...
Mono: Make the bindings generator output enums
2017-12-27 10:29:00 +07:00
Ignacio Etcheverry
0a0a44da8d
Mono: Make the bindings generator output enums
...
- Switch to PascalCase for constants names
2017-12-24 04:20:41 +01:00
Ignacio Etcheverry
6e3d4ee9a6
Marshal NULL MonoString* as empty Godot string
2017-12-24 03:32:40 +01:00
PJB3005
7368a0e0f0
Fix fatal mono logs not getting logged to disk.
...
They aborted the application without flushing the log file.
Also there was a typo.
2017-12-19 17:36:33 +01:00
Rémi Verschelde
13c2ff9320
Style: Apply new clang-format 5.0 style to all files
2017-12-07 08:02:00 +01:00
Ignacio Etcheverry
b51b3dc030
Mono: Fix compiler error with Variant::operator AABB()
2017-11-18 18:13:57 +01:00
Ferenc Arn
d28763a4c1
Rename Rect3 to AABB.
...
Fixes #12973 .
2017-11-17 11:01:41 -05:00
Ignacio Etcheverry
3c97a9543d
Merge pull request #12549 from neikeq/seriously-do-they
...
Mono cleanup fixes
2017-11-01 01:56:16 +01:00
Ignacio Etcheverry
a018cbaee1
Fix thread checking to queue instances for deletion
2017-11-01 01:51:12 +01:00
Ignacio Etcheverry
0525b63421
Use mono_gc_wbarrier_set_arrayref for Array marshalling
2017-11-01 00:17:34 +01:00
Ignacio Etcheverry
619e4eb23d
Merge pull request #12491 from neikeq/waitasecond···
...
Fix FrameworkPathOverride and assemblies path loop
2017-10-29 22:33:27 +01:00
Ignacio Etcheverry
aa5a0b550f
Fix FrameworkPathOverride and assemblies path loop
2017-10-29 22:22:38 +01:00
Ignacio Etcheverry
27b7fb8e66
Mono: Add build project button and reload interval
2017-10-29 05:57:38 +01:00
Unknown
a2247d45fc
Mono: Use "UnnamedProject" if application/config/name is empty
2017-10-27 21:22:54 +02:00
Ignacio Etcheverry
45e5e23ee8
Mono: Prevent raising exceptions in native code
...
For now we will just print the exceptions we catch. Later, we should use something similar to 'mono_set_pending_exception(ex)'.
2017-10-23 00:35:14 +02:00
Ignacio Etcheverry
acaaf2e440
Merge pull request #12326 from neikeq/n
...
Fix set field from MonoObject*
2017-10-22 22:14:10 +02:00
Ignacio Etcheverry
ae725969d3
Fix set field from MonoObject*
2017-10-22 22:07:52 +02:00
Rémi Verschelde
6361e24f29
Cleanup unnecessary debug prints
2017-10-21 20:41:07 +02:00
Ignacio Etcheverry
6e6b455d1f
Export attribute fixes and improvements
...
- Allow non-public fields to be exported as well (to avoid confusion).
- Set PROPERTY_HINT_RESOURCE_TYPE for resource derived fields.
- Support enums and automatically fill PROPERTY_HINT_ENUM's hint_string for enum fields.
2017-10-17 14:42:13 +02:00
Ignacio Etcheverry
63369ec306
Re-write SignalAwaiter implementation
...
Old implementation had issues where you could only await on the same signal of the same source once.
2017-10-16 03:54:23 +02:00
Ignacio Etcheverry
14b9ad1296
Fix wrong array index
2017-10-10 18:29:56 +02:00
Ignacio Etcheverry
18d3ba0c50
Fix getting struct elements from MonoArray ( #11978 )
...
* Fix getting struct elements from MonoArray
* Revert undesired change
2017-10-10 00:25:36 +02:00
Ignacio Etcheverry
ff28569d16
Fixed IntPtr unboxing ( #11949 )
...
- Fix boolean never reset to false
- Fix IntPtr unboxing and cleanup
2017-10-09 00:10:54 +02:00
Ignacio Etcheverry
eb920406ae
Fix dot separated assembly names confused with file extensions
2017-10-07 22:00:35 +02:00
Ignacio Etcheverry
9eda9be3cf
Fix assembly load hooks
2017-10-07 04:21:55 +02:00
Ignacio Etcheverry
1d309439cb
Uninitialized local and domain finalize fixes
...
- Make sure to run the GC before and after finalizing the scripts domain.
2017-10-05 00:12:36 +02:00
Ignacio Etcheverry
e36fb95c50
Added mono module
2017-10-03 00:01:26 +02:00