Age | Commit message (Collapse) | Author |
|
Some GDScript fixes
|
|
It can wait until the analyzer itself is destructed, otherwise other
phases might be using freed parsers.
|
|
Otherwise this may lead to a crash when the dependency is not present.
|
|
|
|
A couple of GDScript fixes
|
|
It was mistakenly returning the source instead of the result.
|
|
The call of range() in a for loop is optimized to use int or vectors, to
avoid allocating an array, however the type was set as array still. With
the new typed VM this is an issue as the type mismatch the actual value,
resulting in wrong instructions to be selected.
|
|
- Replace the for loop temporaries by locals. They cause conflicts with
the stack when being popped, while locals are properly handled in the
scope.
- Change the interface for the codegen so the for loop list doesn't live
through the whole block if it's a temporary.
- Keep track of the actual amount of local variables in the stack. Using
the size of the map is misleading in cases where multiple locals have
the same name (which is allowed when there's no shadowing).
- Added a few debug checks for temporaries, to avoid them being wrongly
manipulated in the future. They should not live more than a line of
code.
- Rearrange some of compiler code to make sure the temporaries don't
live across blocks.
|
|
Only for built-in types.
|
|
|
|
Methods from builtin types can be called by using the function pointer
when the argument and base types are known at compile time.
|
|
|
|
When the base type is known at compile-time, we can get a direct
function pointer that is faster than the regular set/get paths.
|
|
It now uses the direct operator function pointer, which increases
performance in evaluation.
|
|
Almost all instructions need variant arguments. With this change they
are loaded in an array before each instruction call. This makes the
addressing code be localized to less places, improving compilation
overhead and binary size by a small margin.
This should not affect performance.
|
|
To improve organization and reduce the size of compilation units.
|
|
|
|
|
|
* Using C-style function pointers now, InternalMethod is gone.
* This ensures much better performance in typed code.
* Renamed builtin_funcs to utility_funcs, to avoid naming confusion
|
|
|
|
|
|
Clarify that code in `assert()` should avoid side effects
|
|
Change DocData comparators for MethodDoc and ArgumentDoc to get a better
ordering of constructors.
|
|
|
|
The underscore prefix was used to avoid the conflict between the `RID` class
name and the matching enum value in `Variant::Type`.
This can be fixed differently by prefixing uses of the `RID` class in `Variant`
with the scope resolution operator, as done already for `AABB`.
|
|
|
|
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
|
|
-Discern between named, indexed and keyed
-Get direct access to functions for typed GDScript and GDNative bindings
-Small changes to some classes in order to work with the new setget binder
|
|
|
|
Fixes the misleading message when a non-existing function name is passed to TreeItem.call_recursive()
|
|
Fixed ParseError when calling Object.new()
|
|
This decreases the editor binary size by about 8 KB.
|
|
|
|
Fix handling of scope for local GDScript variables
|
|
Array/Dictionary Nodes no more reduced to array/dictionary variant
|
|
|
|
This ensures that the tests will use a full environment with correct
settings so global classes and autoloads can be properly found.
|
|
GDScript: for loop override stack variable bug fix
|
|
|
|
|
|
GDScript crash on builtin type constructor fix
|
|
Cross-reference GDScript `load` and `ResourceLoader.load` in classref
|
|
|
|
|
|
Avoid warning about harmless unfulfilled yields
|
|
The GDScript `load` mention is moved from the class `ResourceLoader`
description to the `ResourceLoader.load` method description instead,
where it is more likely to be found.
|
|
|
|
|
|
Fix leaks in GDScript
|
|
Using codespell 1.17.1.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
|