summaryrefslogtreecommitdiff
path: root/core/reference.h
AgeCommit message (Collapse)Author
2020-10-18Refactor MethodBind to use variadic templatesreduz
Removed make_binders and the old style generated binders.
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-14Port member initialization from constructor to declaration (C++11)Rémi Verschelde
Using `clang-tidy`'s `modernize-use-default-member-init` check and manual review of the changes, and some extra manual changes that `clang-tidy` failed to do. Also went manually through all of `core` to find occurrences that `clang-tidy` couldn't handle, especially all initializations done in a constructor without using initializer lists.
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-17Style: Set clang-format Standard to Cpp11Rémi Verschelde
For us, it practically only changes the fact that `A<A<int>>` is now used instead of the C++03 compatible `A<A<int> >`. Note: clang-format 10+ changed the `Standard` arguments to fully specified `c++11`, `c++14`, etc. versions, but we can't use `c++17` now if we want to preserve compatibility with clang-format 8 and 9. `Cpp11` is still supported as deprecated alias for `Latest`.
2020-02-26Remove friend reference to non-existing class RefBaseDominik 'dreamsComeTrue' Jasiński
Commit 7ad14e7a3e6f87ddc450f7e34621eb5200808451 removed RefBase class - but still there is hanging reference in....Reference :) class (no pun intended)
2020-02-19Fix Ref(Variant) constructor to properly check the object typeGeorge Marques
Otherwise it was saving any reference as valid, regardless of type.
2020-02-15Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr.Juan Linietsky
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-09-04make core/Reference thread safehuisedenanhai
2019-08-12Remove redundant author doc commentsIAmActuallyCthulhu
2019-04-27C#: Generate the correct integer and floating point typesIgnacio Etcheverry
2019-04-19Added ability for multiple images to be imported as an atlasJuan Linietsky
This adds support for groups in the import system, which point to a single file. Add property hint for saving files in file field
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-08-21== and != operators for Ref<T> / T*Marcin Zawiejski
This is to prevent crashes for code like: ... void Material::set_next_pass(const Ref<Material> &p_pass) { ERR_FAIL_COND(p_pass == this); ... that's been fixed in 031f763d4fda4e0dbcdf90a170aad3124c50c062
2018-03-22Fix several in-class initialization clang warningMarcelo Fernandez
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-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-09-14Construct Variants from Reference properly in GDNativeRuslan Mustakov
Previously godot_variant_new_object constructed Variant without accounting for the fact that the Object can be a Reference, so refcount was not increased and References were destructed prematurely. Also, Reference::init_ref did not propagate refcount increment to the script instance, which led to desync of refcount info on the script side and Godot side.
2017-09-02Fix use of unitialized variablesHein-Pieter van Braam
The second in my quest to make Godot 3.x compile with -Werror on GCC7
2017-08-27Dead code tells no talesRémi Verschelde
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-08-24Convert Object::cast_to() to the static versionHein-Pieter van Braam
Currently we rely on some undefined behavior when Object->cast_to() gets called with a Null pointer. This used to work fine with GCC < 6 but newer versions of GCC remove all codepaths in which the this pointer is Null. However, the non-static cast_to() was supposed to be null safe. This patch makes cast_to() Null safe and removes the now redundant Null checks where they existed. It is explained in this article: https://www.viva64.com/en/b/0226/
2017-08-23Changed MethodBind API to request information from methods. It's much claner ↵Juan Linietsky
now. Also changed PropertyInfo to include informatino about class names.
2017-08-20Fixes Ref's GetTypeInfo missing with ptrcall disabledIgnacio Etcheverry
2017-08-10Improves method bind detection of signature typesIgnacio Etcheverry
2017-07-28Fix passing Refs via ptrcallRuslan Mustakov
There was no constructor for Ref from const pointer, so compiler decided to construct Variant from pointer and then construct Ref from Variant which turned it into NULL, because the Variant had null ref field.
2017-06-20fixed ptrcall cast for const Ref<T>Karroffel
Some methods require a const Ref<T> argument, the ptrcall method wrappers cast `void *` to the apropriate types. The problem is that there is no `Ref(const T *)` constructor, but since Ref modifies the refcount of a Reference anyway there's no point in a const version. The problem is that with a `const T *` constructor call, the argument gets converted to Variant first and loses all the reference information, resulting in a null reference as the argument to the constructor.
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
2017-03-05A Whole New World (clang-format edition)Rémi Verschelde
I can show you the code Pretty, with proper whitespace Tell me, coder, now when did You last write readable code? I can open your eyes Make you see your bad indent Force you to respect the style The core devs agreed upon A whole new world A new fantastic code format A de facto standard With some sugar Enforced with clang-format A whole new world A dazzling style we all dreamed of And when we read it through It's crystal clear That now we're in a whole new world of code
2017-01-16Style: Cleanups, added headers, renamed filesRémi Verschelde
Made sure files in core/ and tools/ have a proper Godot license header when written by us. Also renamed aabb.{cpp,h} and object_type_db.{cpp,h} to rect3.{cpp,h} and class_db.{cpp,h} respectively. Also added a proper header to core/io/base64.{c,h} after clarifying the licensing with the original author (public domain).
2017-01-02ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky
Variant. All usages of "type" to refer to classes were renamed to "class" ClassDB has been exposed to GDScript. OBJ_TYPE() macro is now GDCLASS()
2017-01-01Welcome in 2017, dear changelog reader!Rémi Verschelde
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer with state-of-the-art rendering techniques tuned to work as low as middle end handheld devices - without compromising with the possibilities given for higher end desktop games of course. Great times ahead for the Godot community and the gamers that will play our games!
2016-06-24changed way to return referenceJuan Linietsky
2016-06-22Improved binding system (ObjectTypeDB::bind_method) to be friendlier to ↵Juan Linietsky
statically typed languages, should help in the Mono integration. Disabled by default.
2016-01-01Update copyright to 2016 in headersGeorge Marques
2015-06-14missing changesJuan Linietsky
2015-04-18-Fixed post-import script-reload buf, fixes #1683Juan Linietsky
2015-04-18Updated copyright year in all headersJuan Linietsky
2014-02-09GODOT IS OPEN SOURCEJuan Linietsky