Commit Graph

1732 Commits

Author SHA1 Message Date
rdb 80bb5c09fe Merge branch 'release/1.10.x' 2019-02-12 01:13:56 +01:00
rdb 5310945f4c py_panda: fix use of macro that was removed in Python 3.8 2019-02-11 23:36:30 +01:00
rdb 3df3b27a4e prc: prefer global-scope static MutexImpl over local one
MutexImpl guarantees nowadays to be initialized at constant init time, so this is safer on Windows, where we can't rely on magic statics.
2019-02-11 16:23:16 +01:00
rdb b466e77fe3 dtoolbase: make TypeRegistry lock statically initialized
This is possible now that all MutexImpl have a constexpr constructor.
2019-02-11 16:23:16 +01:00
rdb fb5191e812 pipeline: unify ConditionVarFull and ConditionVar
See #550.  Now that we use the Vista API for condition variables, the only place where the distinction is still relevant is Windows XP, and it's just not worth it for that one corner case.
2019-02-11 16:23:10 +01:00
rdb ab569916b1 Disable WinXP mutex emulation when _WIN32_WINNT >= 0x0600 2019-02-11 14:52:21 +01:00
rdb 89392f0e2d dtoolbase: new mutex and condition variable impl on Windows
This uses SRWLock on Vista and above, and uses a hand-rolled implementation on Windows XP that uses Events (and a spinlock, if this is a multi-core system).

Since SRWLocks aren't recursive, ReMutexWin32Impl has been added to implement recursive mutices, using old-fashioned critical sections.

MutexImpl now has a constexpr constructor on all implementations.
2019-02-07 00:20:59 +01:00
rdb 7e0952e367 parser-inc: add synchapi.h and winnt.h headers 2019-02-07 00:20:59 +01:00
rdb 36dd8889e7 Merge branch 'release/1.10.x' 2019-02-06 22:52:19 +01:00
rdb 666568a513 prc: fix recursive use of non-recursive mutex 2019-02-06 22:10:39 +01:00
rdb 86c266fd88 Merge branch 'release/1.10.x' 2019-01-31 00:58:29 +01:00
rdb 3a6f7fcde1 dtoolbase: docstring clarification for record_python_type
[skip ci]
2019-01-31 00:11:21 +01:00
rdb 1d9334f578 parser-inc: add atomic_int, etc. typedefs 2019-01-30 23:59:34 +01:00
rdb ffa0c74402 Merge branch 'release/1.10.x' 2019-01-26 20:18:02 +01:00
rdb 376cef51c4 interrogate: fix Python 3 crash with optional std::wstring args
This would cause PyMem_Free to be called on an uninitialized pointer if a default argument was not specified.

Fixes #542
2019-01-26 19:27:50 +01:00
rdb 403e56817a dtoolbase: fix x86 compilation error on Android 2019-01-26 19:22:44 +01:00
rdb fc90ca7fdf Merge branch 'release/1.10.x' 2019-01-20 17:02:15 +01:00
rdb ba4036e290 prc: clear error flag if loading deploy-ng blobinfo fails 2019-01-19 23:12:46 +01:00
rdb 6eca44464e load_dso: prevent load_dso_error() from returning old error
This happens if load_dso fails due to being unable to find the file, but not setting the dlerror flag and therefore causing a misleading error message to be shown.
2019-01-19 23:10:46 +01:00
rdb ba993aea0d Merge branch 'release/1.10.x' 2019-01-10 23:32:29 +01:00
rdb 84a1315104 More fixes to work around broken libc++ eof() in Mac OS X 10.7 2019-01-10 21:53:02 +01:00
Brian Lach 7c6e677a23 dtoolbase: add std::initializer_list constructors for pvector, epvector, pdeque, plist, pset, pmultiset
Closes #520
2019-01-10 01:42:44 +01:00
Sam Edwards 0c890f059d interrogate: Export Python entry points with EXPORT_CLASS
Closes #505
2019-01-03 12:39:22 +01:00
Sam Edwards ce4985a333 interrogatedb: Fix missing 'static' keyword 2019-01-02 10:18:59 -07:00
rdb ac8be1a2e6 py_panda: fix int-to-enum conversion in Python 2
Fixes #498
2019-01-01 16:32:04 +01:00
rdb 0a43008313 py_panda: avoid duplicate symbol issues with LINK_ALL_STATIC
Fixes #478
2018-12-30 16:42:50 +01:00
Sam Edwards 818fdbd232 interrogate: Tidy up hash_string function
The main motivation behind this change is to get rid of a
signed integer overflow that sometimes happens in the prime
multiplication step, which is (per the C++ spec) undefined
behavior. However, it's probably for the best to use only
unsigned int when the function is clearly trying to avoid
negative values.

Not that I suspect it matters much, but I have also heavily
tested that the behavior of the function is unchanged (at
least on PC hardware - signed integer overflow doesn't
behave portably) although it may now be slightly faster due
to the fact that I have removed the floating-point math.
2018-12-30 04:21:34 -07:00
rdb 01915a36db Merge branch 'master' into deploy-ng 2018-12-26 23:41:50 +01:00
rdb a9d6d3be46 interrogate: refactor default argument handling 2018-12-26 22:47:14 +01:00
rdb 47188b47f6 interrogate: fix recording type of property in interrogatedb 2018-12-23 15:45:30 +01:00
rdb 256c8c5a23 interrogate: don't add space at end of command-line comment 2018-12-23 15:44:59 +01:00
rdb 6df8aede1f interrogatedb: add interrogate_element_is_sequence/mapping 2018-12-23 15:44:01 +01:00
rdb 4c0fa1e75d Merge branch 'master' into deploy-ng 2018-12-16 22:36:45 +01:00
rdb 7995d483ab py_panda: make standard_type_members static and internal 2018-12-16 18:46:30 +01:00
rdb a7752da4f1 Merge branch 'master' into deploy-ng 2018-12-09 20:22:23 +01:00
rdb 825058805a dtoolutil: add GlobPattern::matches_file() and unit test
This is used similar to matches() but for file paths: it does not match slashes for * characters and has special support for /**/ and ignores // and /./ patterns.
2018-12-09 15:21:11 +01:00
rdb c560c502b9 Merge branch 'master' into deploy-ng 2018-12-01 22:14:01 +01:00
rdb 7ed8b01a84 Merge branch 'input-overhaul' 2018-11-30 22:04:13 +01:00
rdb d7124d4df4 Merge branch 'master' into deploy-ng 2018-11-29 12:57:49 +01:00
rdb 97d4e32a06 general: use nassert_raise instead of nassertv(false) et al
Even a brief error message in the assertion is infinitely more useful to a user who is not at home in the source code, especially for assertions that may reasonably be triggered by honest user mistakes.
2018-11-28 17:35:20 +01:00
rdb 32df05b528 Fix crash when unmounting/closing multifile while streams are open
It's not really reasonable to expect a user to find every occurrence of a cached resource that might be using an open stream and remove it or crash otherwise.

This is fixed by keeping the multifile stream open as long as any substreams are still pointing to it, using a simplified reference counting (care is taken not to fully make StreamWrapper reference-counted, since it's not in express and existing uses should not be broken).

Fixes #449
Also see #428
2018-11-27 21:19:38 +01:00
rdb 26fcf131c9 Merge branch 'master' into input-overhaul 2018-11-25 17:10:31 +01:00
rdb e32388c2f8 interrogate: fix crash reading static property 2018-11-24 22:44:09 +01:00
rdb 3d7fcf2ce9 Merge branch 'master' into deploy-ng 2018-11-12 18:31:43 +01:00
rdb 074c5187b0 Adopt new WindowProperties(size=(x, y), ...) short-hand
This is intended as replacement for WindowProperties.size(x, y), which is deprecated since it conflicts with the `size` property.  See #444.
2018-11-12 17:53:53 +01:00
rdb 598664ab80 interrogate: disambiguate case where static method shadows a property
While it becomes possible to do this now, it should not become standard practice, and we should deprecate cases where we already do it by renaming either the static method or the property.

Fixes #444
2018-11-12 16:31:54 +01:00
Sam Edwards a9dfd8352e general: Distinguish local/system includes
This changes includes so that local includes are consistently
#include "localFile.h"
while system and third-party includes are consistently
#include <systemFile.h>

This commit mostly converts the former to the latter; the two
exceptions are in android_main.cxx and fmodAudioSound.h, where
the reverse was necessary.
2018-11-10 18:00:10 -07:00
rdb 0581e414a4 parser-inc: remove patchlevel.h include from Python.h 2018-11-09 11:40:11 +01:00
rdb 5ba09ec5a0 interrogate: fix compile error when building with LINK_ALL_STATIC
Fixes #442
2018-11-09 11:38:41 +01:00
rdb cf65010a54 Merge branch 'master' into deploy-ng 2018-11-06 23:40:24 +01:00