summaryrefslogtreecommitdiff
path: root/core/array.cpp
AgeCommit message (Collapse)Author
2019-04-20Don't crash on printing nested typesHein-Pieter van Braam-Stewart
When adding an Array or Dictionary to itself operator String() got in an infinite loop. This commit adds a stack to operator String() (Through the use of a new 'stringify method'). This stack keeps track of all unique Arrays and Dictionaries it has seen. When a duplicate is found only a static string is printed '[...]' or '{...}'. This mirror Python's behavior in a similar case.
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-10-09Revert "Added a check in sort_custom thats test wether the given method exists."Rémi Verschelde
This reverts commit 6415454581c3ba0025da6b9bae42e060fa4e1508. That patch was correct but Object::has_method is not a reliable way to check if we can use the given method, as it doesn't support inner classes (#22838).
2018-10-04Added a check in sort_custom thats test wether the given method exists.DualMatrix
Added a check in sort_custom thats test wether the given method exists.
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-23Added max() and min() functions to array to return greater or lesser element ↵Juan Linietsky
(or null if data is not of compatible type or empty array). Closes #15697
2018-08-04Fix SortArray crashing with bad comparison functionspoke1024
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-03-13Duplicate Arrays and Dictionaries when instancing scene in editorBojidar Marinov
Also, add deep (=false) parameter to Array.duplicate and Dictionary.duplicate Fixes #13971
2018-01-10Add shuffle() method to Arraypoke1024
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-11-25Made Vector::ptrw explicit for writing, compiler was sometimes using the ↵Juan Linietsky
wrong function, leading to unnecesary copy on writes and reduced performance.
2017-11-21Add bsearch and bsearch_custom to Arraypoke1024
2017-10-09Array::sort, sort_custom and invert now return reference to Array to allow ↵Marius Guggenmos
chaining of operations
2017-09-21Fixed a bunch of typos, including an error code.Ross Hadden
2017-09-06-Fixed changes to default input actions not working, closes #10502Juan Linietsky
-Added Array.duplicate() method, needed to fix above
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
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-11Both Array and Dictionary are always in shared mode (removed copy on write).Juan Linietsky
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-11-18Add Array.front() and Array.back()Kazuo256
2016-09-11(Array) pop_front, pop_back return valuesRăzvan Cosmin Rădulescu
pop_front, pop_back now return values instead of `void`. Things I didn't know how to properly implement: 1. pop_front & pop_back shows in the help menu Object as return value. I know this is incorrect but if not Object than what? Cause it can't be void. It needs to be a generic type that includes all the Array types
2016-07-07Array has(var value) functionPawel Kowal
2016-06-10Add 'rfind' function to ArrayGeorge Marques
2016-06-10Add 'from' argument to Array.find()George Marques
2016-06-03Added Array.find_last() and Array.count()J08nY
2016-01-01Update copyright to 2016 in headersGeorge Marques
2015-12-12add pop_back/pop_front/push_back/push_front to array, to make it according ↵Juan Linietsky
to doc, fixes #3040
2015-04-18Updated copyright year in all headersJuan Linietsky
2014-02-09GODOT IS OPEN SOURCEJuan Linietsky