Commit Graph

43 Commits

Author SHA1 Message Date
0139bd04b2 Fix GDScriptCache::clear() crash when clearing packed scenes 2022-12-10 19:10:12 -05:00
ff544df926 Fix GDScriptCache to not remove scripts/scenes individually when clearing 2022-12-10 12:48:07 -05:00
59c6642f2a Add missing packed scene cache clear inside GDScriptCache::clear() 2022-12-07 15:29:18 -05:00
88f3045301 Move GDScript uninitialization to GDScriptLanguage::finalize()
Co-authored-by: Ricardo Buring <ricardo.buring@gmail.com>
Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2022-12-06 09:35:39 -05:00
4555ccdf98 Merge pull request #69224 from adamscott/fix-PackedScene-reload_from_file
Add `PackedScene::reload_from_file()` override
2022-11-28 16:53:36 +01:00
a34a26eb66 Add PackedScene::reload_from_file() override 2022-11-28 10:23:02 -05:00
4e60689695 Fix cyclic reference base being loaded but not valid (which is ok) 2022-11-27 15:50:19 -05:00
69bb7e5b11 Fix singleton scene cyclic loading 2022-11-25 12:43:55 -05:00
c474e2f639 Merge pull request #68987 from adamscott/fix-godot#61386-autoload-scenes-implicit-types
Fix autoload scenes implicit types
2022-11-22 08:31:36 +01:00
eb62d241c0 [godot#61386] Fix autoload scenes implicit types 2022-11-21 23:39:31 -05:00
e86e15571f [godot#68971] Fetch cached scene if it exists in GDScriptCache 2022-11-21 15:57:45 -05:00
190226098b Merge pull request #68929 from adamscott/add-rename-check
Add `GDScriptCache::move_script` check before executing logic
2022-11-20 23:25:30 +01:00
98ceb7ecf5 Add move_script check before executing logic 2022-11-20 15:21:57 -05:00
5ef971da1a GDScript: Cache scripts after parse error 2022-11-20 13:06:14 -05:00
a6410878db Fix empty text in editor 2022-11-20 03:17:16 -05:00
5704055d30 Fix cyclic references in GDScript 2.0 2022-11-18 16:41:31 -05:00
bce6f1792e GDScript compiler subclass bugfixes 2022-11-13 02:29:21 -08:00
f1a4041f52 Load/update GDScript from disk on load if cache mode is CACHE_MODE_IGNORE 2022-09-24 16:06:36 +08:00
e5814c3f81 Fix for recurring check in gdscript_cach.cpp 2022-09-11 16:56:49 +09:00
0c5431644d Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose. 2022-07-07 11:07:18 +03:00
45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
9381acb6a4 Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
b69b526b7c GDScript cache crashfix. 2022-01-22 17:42:54 -08:00
fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
f19a1e28c8 Revert "Fix auto reload scripts on external change" 2021-12-10 22:40:20 +01:00
49403cbfa0 Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
1a8741aaca Merge pull request #49473 from cptchuckles/fix-auto-reload-scripts 2021-12-09 10:06:22 +01:00
dfe3a2fad0 GDScript: Set status on parsing steps beforehand
To avoid potential dependency cycles. If any happens it will not get
into infinite recursion anymore and errors will cascade later on.
2021-10-06 21:24:27 -03:00
10c9c2ccd4 Avoid crash after a parsing error in GDScript 2021-09-11 11:35:25 +02:00
b0c807c75a Fix auto reload scripts on external change 2021-09-02 20:28:02 -05:00
9973bf93ed Fix crash when failing to load script from cache 2021-08-16 16:27:25 -07:00
e28fd07b2b Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
9e328bb5b7 Core: Move DirAccess and FileAccess to core/io
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
da5d7db610 Rename File::get_len() get_length() 2021-05-25 11:54:28 +01:00
469fa47e06 Make all file access 64-bit (uint64_t)
This changes the types of a big number of variables.

General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
  settled on keeping it unsigned, which is also closer to what one would expect
  with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
  and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
  we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
  pages, blocks, etc.

In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
  core binds.

Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
  version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
  big files on 32-bit Windows builds made with that toolchain. We might add a
  workaround.

Fixes #44363.
Fixes godotengine/godot-proposals#400.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-17 15:06:19 +02:00
b5334d14f7 Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
1c881c973b GDScript: Fix MutexLock usage, fixes Clang 6 compat
Fixes #41852.
2020-09-09 14:56:57 +02:00
d36d7e2a1c GDScript: Use pointer instead of references in cache
They are not supposed to be kept alive and this is cleaner and less
error-prone than unreferencing the elements.
2020-08-23 12:55:27 -03:00
3abb3c0d6e GDScript: Fix crash when superclass file is non-existent
Incidentally, allow EOF to be an end of statement.
2020-08-17 21:30:39 -03:00
a0f54cb95e Wrap up GDScript 2.0 base implementation 2020-07-22 11:07:51 -03:00
7adb0d77cc Add GDScript cache singleton 2020-07-20 11:38:39 -03:00