summaryrefslogtreecommitdiff
path: root/modules/mono/mono_gd/gd_mono.cpp
AgeCommit message (Collapse)Author
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
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-18Style: Format code with clang-format 6.0.1Rémi Verschelde
2018-07-04Mono: Pending exceptions and cleanupIgnacio Etcheverry
2018-03-18Mono: Runtime main args and assembly search fixesIgnacio Etcheverry
- 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-02-25Mono: Better versioning and gracefully unloading of Godot API assembliesIgnacio Etcheverry
2018-02-22Mono: Add project export pluginIgnacio Etcheverry
2018-02-16Makes project manager never initialize mono debug.Pieter-Jan Briers
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-01-26Mono: Don't defer call to dispose queue objects when finalizing domainIgnacio Etcheverry
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-09Mono: Implement stack info for errors and exceptionsIgnacio Etcheverry
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
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-04Mono: Add properties support in scriptsIgnacio Etcheverry
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-01-01Mono: Script lifetime fixesIgnacio Etcheverry
- 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.
2017-11-01Fix thread checking to queue instances for deletionIgnacio Etcheverry
2017-10-29Mono: Add build project button and reload intervalIgnacio Etcheverry
2017-10-27Mono: Use "UnnamedProject" if application/config/name is emptyUnknown
2017-10-23Mono: Prevent raising exceptions in native codeIgnacio Etcheverry
For now we will just print the exceptions we catch. Later, we should use something similar to 'mono_set_pending_exception(ex)'.
2017-10-21Cleanup unnecessary debug printsRémi Verschelde
2017-10-10 Fix getting struct elements from MonoArray (#11978)Ignacio Etcheverry
* Fix getting struct elements from MonoArray * Revert undesired change
2017-10-07Fix dot separated assembly names confused with file extensionsIgnacio Etcheverry
2017-10-07Fix assembly load hooksIgnacio Etcheverry
2017-10-05Uninitialized local and domain finalize fixesIgnacio Etcheverry
- Make sure to run the GC before and after finalizing the scripts domain.
2017-10-03Added mono moduleIgnacio Etcheverry