26134 Commits

Author SHA1 Message Date
rdb
33cef0aca3 pgraph: Disable non-working __traverse__() on NodePath 2024-03-29 17:15:43 +01:00
rdb
61665dc8ba cppparser: Remove unused <list> include 2024-03-29 16:12:01 +01:00
rdb
4430f16cda cppparser: Minor performance improvements 2024-03-29 16:04:04 +01:00
rdb
12a188b116 cppparser: Allow move semantics for CPPToken
This should make it a bit more efficient to move tokens around
2024-03-29 15:00:39 +01:00
rdb
e1870047c6 cppparser: In preprocess mode, add newline when switching files 2024-03-29 14:59:50 +01:00
rdb
329fa728a7 cppparser: Change check_keyword() to an unordered_set lookup 2024-03-29 13:04:24 +01:00
rdb
a3745af451 parser-inc: additions to sys/stat.h and signal.h 2024-03-29 13:01:40 +01:00
rdb
04a9264e68 cppparser: Fix slow parser performance 2024-03-29 12:22:54 +01:00
rdb
acf118c96a cppparser: Update prebuilt bison files 2024-03-29 12:19:48 +01:00
rdb
c1e494c083 cppparser: Fix volatile keyword not being parsed in all places 2024-03-29 11:39:51 +01:00
rdb
6e81fb5cdf cppparser: Support __restrict and __restrict__ keywords
To compile C code, you can do `-Drestrict=__restrict`
2024-03-29 11:36:14 +01:00
rdb
e16cb8af98 cppparser: Add special __builtin_va_list type 2024-03-29 11:34:56 +01:00
rdb
d1c277ef6a cppparser: prevent enum values having long chain of additions
See #1638

[skip ci]
2024-03-28 22:49:15 +01:00
rdb
bddb7cb262 cppparser: fix escaping of string literals in preprocessor mode
[skip ci]
2024-03-28 22:17:49 +01:00
rdb
ba51b2cdca cppparser: Fix wide character literals in #if 2024-03-28 21:55:36 +01:00
rdb
e29b326dd8 cppparser: Parse macro directly following string literal
This allows the following C code to parse:

    #define SUFFIX "bar"
    const char *str = "foo"SUFFIX;

This is technically not valid C++ since C++ uses this syntax for custom string literals, but we might as well check if there is a macro defined with this name if we can't find a matching string literal and are about to throw an error
2024-03-28 21:09:40 +01:00
rdb
ae8d643907 cppparser: Prefer function over type when searching symbol
This is meant to fix the "stat problem", which means you can define a function with the same name as a struct, which is allowed, since you can still refer to the struct with an explicit `struct stat`.

It can be reproduced with the following code:

struct stat;

void stat();

void *ptr = (void *)stat;
2024-03-28 21:02:32 +01:00
rdb
50538203ce cppparser: Fix regression parsing defined MACRO without parens 2024-03-28 20:00:47 +01:00
rdb
87d3a1d553 cppparser: Add missing include to fix non-unity build 2024-03-28 17:19:04 +01:00
rdb
fb68f82c5b cppparser: Add preprocessor option (-E) to parse_file
This makes it easier to test the behaviour of the preprocessor
2024-03-28 17:15:24 +01:00
rdb
a769808af0 cppparser: Add missing keywords to CPPToken::output() 2024-03-28 17:01:47 +01:00
rdb
360216656e cppparser: assorted preprocessor improvements:
* Fix function-like macro arguments being expanded even when they were participating in token expansion or stringification
* Fix __has_include with comma or closing parenthesis in angle-quoted filename
* Don't issue warning if macro is redefined with identical definition
* Fixes for extraneous spaces being added to expansions
* Assorted refactoring

This should resolve #1638.
2024-03-28 17:01:24 +01:00
rdb
78f1a5b15a cppparser: Fix crash redefining struct as typedef
This would crash on the following code:

    struct aaa;
    typedef struct {} aaa;
2024-03-28 11:18:41 +01:00
rdb
014fd97fef cppparser: Fix string handling in expansion of macro arguments
See #1638
2024-03-28 10:07:12 +01:00
rdb
e63ba11af2 cppparser: Fix expansion of function macro used without parentheses 2024-03-28 01:18:19 +01:00
rdb
1213d95560 Merge branch 'release/1.10.x' 2024-03-28 01:17:52 +01:00
rdb
0e2a706ec8 audio: Fix changing sound time not working on macOS
Fixes #1607
2024-03-27 12:02:12 +01:00
rdb
d44f9ae3dc makepanda: Use new dist hooks location introduced by 1f41edd
Fixes #1624
2024-03-27 12:01:53 +01:00
rdb
1f41edd0a0 dist: Remove panda3d dependency for global dist hook
Fixes #1624
2024-03-27 11:23:17 +01:00
kamgha
aa58b4ccf2 palettizer: Fix magfilter on KW_mipmap
Closes #1631
2024-03-27 11:12:58 +01:00
rdb
a50b9d83aa interval: Fix creating LerpFunctionInterval from partial
Fixes #1623
2024-03-27 11:10:08 +01:00
rdb
237d27dfd9 text: Error instead of crash when glyph does not fit into page
Fixes #1626
2024-03-27 10:59:52 +01:00
rdb
38a3048479 cppparser: Fix recursion in expanding function macro arguments
See #1635
2024-03-27 10:43:58 +01:00
rdb
8ea2301d16 pgui: Fix PGEntry::get_cursor_Y()
It returned the Y position, which is always 0.0, instead of the Z position.

Fixes #1633
2024-03-27 10:22:54 +01:00
rdb
06e72b5d7d text: Add docstring for set_text_color()
Fixes #1621
2024-03-27 10:06:39 +01:00
rdb
c923cf6ee5 cppparser: Perform macro expansion on macro arguments
Fixes #1638
2024-03-27 02:26:14 +01:00
rdb
674c037c50 cppparser: Trim whitespace around macro arguments 2024-03-27 02:25:56 +01:00
rdb
c5ab6573b0 cppparser: Improve error messages involving macro expansion
Now shows the expansion of the macro if a parse error occurs in one.
2024-03-27 02:23:58 +01:00
rdb
6f6cbf318e Merge branch 'release/1.10.x' 2024-03-26 17:08:52 +01:00
rdb
80147990cc cppparser: Fix problems with recursive expansion in preprocessor
Other half of #1635
2024-03-26 15:55:50 +01:00
mingodad
685b98021c cppparser: Skip comments after preprocessor directive
See #1635
2024-03-26 15:54:33 +01:00
rdb
655aa49d81 putil: Remove outdated TypedWritable template files
See #1630
2024-03-18 02:39:51 +01:00
rdb
40b824bdcc general: Consistently name all bam factory functions make_from_bam
See discussion in #1630
2024-03-18 02:38:41 +01:00
rdb
d4a3b9bfcd glgsg: Fix docstring typo 2024-03-15 12:47:21 +01:00
rdb
91c22a0fd6 pstats: Perf improvement for smooth mode in strip chart with dropped frames
This significantly improves PStats strip chart performance with high frame rates and high number of dropped frames
2024-03-15 12:45:19 +01:00
rdb
07902429b8 pstats: optimize method that searches for frame at given time
This method is called a lot in the strip chart code and the current implementation can be very slow with a large frame rate
2024-03-15 12:44:14 +01:00
rdb
9fd9e2868e pstats: Don't compute frame data for dropped frames
When a frame is dropped, the previous non-dropped frame is considered to be repeated, but the strip chart would compute new cached frame data for it, causing performance to be unusably slow at high frame rate data gathering even when most frames are skipped

This makes performance remotely usable in that situation
2024-03-14 10:22:18 +01:00
rdb
f59be2d6f7 pstats: Performance optimizations for strip chart 2024-03-13 23:22:15 +01:00
rdb
f7cca55e14 pnmimagetypes: Fix double return statement in bmp.h
Fixes #1628

[skip ci]
2024-03-12 17:28:05 +01:00
rdb
b50ad2efe9 eggprogs: Fix compiler warnings 2024-03-12 15:48:27 +01:00