summaryrefslogtreecommitdiff
path: root/libproxy/extension_pacrunner.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove nonfunctional and crashy pacrunner cachingMichael Catanzaro2020-09-101-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | libproxy currently attempts to cache pacrunner objects in the pr member variable of its pacrunner_extension object. This is broken, though, because it relies on the pacrunner object also being stored in pacrunner_extension's last member variable, which is never written to. So that caching has never worked properly. In practice, it only does one thing: it causes a threadsafety bug, #68, because it causes the old pacrunner object to be deleted on the thread that is creating the new pacrunner, which is illegal for both the mozjs and WebKit-based pacrunner extensions that expect their objects to be deleted on the same thread they were created on. This patch was originally written by Dan Winship for Fedora 19. It got dropped in Fedora 24, then resurrected again for Fedora 28 after we noticed 30,000 crash reports. I've tweaked it a bit to completely remove the unused member variables. Finally, note that this code is not exception-safe: if an exception is thrown, the pacrunner could be leaked. But this seems to be a common problem throughout libproxy. It should be fixed by using std::unique_ptr instead of raw new and delete. https://bugzilla.redhat.com/show_bug.cgi?id=998232 Fixes #68
* Remove dynamic exception specificationsMichael Catanzaro2020-08-121-1/+1
| | | | | | | | | C++98 called and it wants its dynamic exception specifications back! We'd better comply. https://en.cppreference.com/w/cpp/language/except_spec Fixes #127
* Small performance improvementsAlbert Astals Cid2019-10-041-2/+2
| | | | | * pass strings by const & instead of copy * Search single chars as chars and not as strings
* Convert pacrunner to use the template singleton methodnpmccallum2010-02-161-5/+0
|
* remove googlecode from the namespacenpmccallum2010-02-051-1/+1
|
* massive rework; split off libmodman; make unit tests for libmodman; remove ↵npmccallum2010-02-051-0/+46
config_wpad; remove config_file (both intenal and module); remove config ordering support; merge lukas' kde plugin rework