Commit graph

237 commits

Author SHA1 Message Date
Matt Amos
3d7b84a598 Fix deadlock in recursive datasource registration.
The datasource cache was taking an exclusive lock on the simple
mutex used to protect the singleton's data pointer. This works
okay when everyone always calls it non-recursively, but when the
recursive flag is true then it will always deadlock when called
on any directory with subdirectories.

Additionally, many methods which accessed private data members of
the cache were not protected by any locks.

Since the call pattern of registering datasources is strictly
tree-shaped then it's a good candidate for a recursive mutex. This
has a slightly higher overhead than a simple mutex, so rather than
change the singleton's mutex to be recursive, I've added a new
instance mutex to the datasource cache.

Also, added a very basic test which reproduces the problem and
shows that it's fixed with this patch.
2015-08-23 20:25:35 +01:00
artemp
f8afa796d7 update test data 2015-08-17 16:56:00 +02:00
artemp
0ba2e3f3f6 update svg tests 2015-08-17 16:53:42 +02:00
artemp
3e3ab2cd4b update test 2015-08-12 11:35:26 +02:00
artemp
ebf4d66900 Merge branch 'master' into image_filters 2015-08-12 11:27:59 +02:00
artemp
c0e2cf3616 update scons + visual test 2015-08-12 11:18:09 +02:00
artemp
751abba262 add parse_jpeg_quality method + uint test parsing jpegXX and jpeg:quality=XX options
ref #3024
2015-08-12 10:29:57 +02:00
Blake Thompson
0b6b11b9cf Added the ability for filter_image to throw properly with bad input and added the ability for a new image to be returned 2015-08-11 19:22:09 -05:00
Blake Thompson
792e94ae90 Removed image-filter from map object, made it so that premultiplication/demultiplication only took place when correctly required in image filters. 2015-08-11 14:31:29 -05:00
Blake Thompson
a492028f25 Initial commit of changes for image_filters so they can be called outside of agg renderer 2015-08-07 15:54:39 -05:00
Blake Thompson
161469ed63 Fixed an issue with fields over size of int32 in OGR plugin and added tests to cover this situation. 2015-08-05 13:47:17 -05:00
Blake Thompson
ec73b50557 Added ability for image filters to be used on the map object, so that the entire map has an image filter applied. Corrected issues with colorblind algorithms due to incorrect algorithm used as colorspace was required to be in sRGBA rather then RGBA. 2015-08-05 12:35:17 -05:00
Blake Thompson
6245790e72 Added new image filters that allow an image to be viewed in colorblind modes, allow cartographers to see what their maps would appear like to a color blind person 2015-08-04 17:41:31 -05:00
Blake Thompson
f5cf669736 Updated SVG unit test so that it no longer writes to std err. closes #3007 2015-07-31 12:31:54 -05:00
artemp
42bf2303e0 fix parse_double_optional_percent grammar and update tests 2015-07-31 11:35:02 +02:00
artemp
5b04764757 SVG - update tests to work with marker_cache's strict policy 2015-07-31 10:47:30 +02:00
jakepruitt
0cc524aa1c Adding percentage for linear gradient 2015-07-30 17:35:30 -04:00
jakepruitt
1f7b961901 Update test data 2015-07-30 17:09:26 -04:00
jakepruitt
6f6af87a43 Write invalid parse_string test 2015-07-30 17:05:19 -04:00
jakepruitt
9549a1cc01 Adding tests for radial gradients with percentages 2015-07-30 16:46:27 -04:00
jakepruitt
8982938270 Adding test for gradient xlink:href
- refs #3005
2015-07-30 12:48:23 -04:00
artemp
9f4db6c855 use correct define -> HAVE_LIBXML2 2015-07-30 18:30:22 +02:00
artemp
f8fd60dc69 remove libxml includes and init calls 2015-07-30 13:13:53 +02:00
artemp
f75921c7ca update test + data 2015-07-30 11:09:08 +02:00
jakepruitt
b4bc16751c Adjusted error message logic for logging path ids 2015-07-29 22:37:30 -04:00
jakepruitt
af27af4af2 Improving svg test coverage
- refs #3005
2015-07-29 22:26:28 -04:00
artemp
f3870cc8fe update test 2015-07-29 16:09:51 +02:00
artemp
d05c13d849 unit test - cope with incorrectly encoded geometries 2015-07-29 15:42:53 +02:00
artemp
0b728e676c update visual test data 2015-07-28 16:35:50 +02:00
artemp
4ee453ada0 update test data 2015-07-28 10:30:24 +02:00
artemp
42c8da72e9 Merge branch 'master' into svg-parser-errors 2015-07-28 10:29:59 +02:00
Dane Springmeyer
c8370485da use latest testdata [skip ci] 2015-07-27 19:05:18 -07:00
Dane Springmeyer
0e8887171d update visual tests after #2988 - e3d79ed493 2015-07-27 17:26:59 -07:00
Dane Springmeyer
c50f72764f update tests + add #2990 to changelog 2015-07-27 17:09:46 -07:00
Dane Springmeyer
e82de0109d centralize plugin registration for unit tests 2015-07-27 15:35:00 -07:00
artemp
ec591c1ffa add bogus stroke-width test 2015-07-24 11:05:58 +02:00
artemp
49d4beec59 fix typo 2015-07-23 15:16:08 +02:00
artemp
e496e24deb add "Gradients apply to leaf nodes" test and update test data 2015-07-23 12:58:38 +02:00
artemp
158e4b7f87 add missing gradient definition test 2015-07-22 16:34:28 +02:00
artemp
626cb9f47c add display=none test 2015-07-22 15:28:55 +02:00
artemp
7aa30a211e SGV tests: <gradient> - update expected path data 2015-07-22 13:32:39 +02:00
artemp
fddc4e0312 update tests 2015-07-22 13:21:17 +02:00
artemp
9eadd48d7b add tests for no-existing svg file + bogus color in fill and stroke 2015-07-22 11:52:18 +02:00
artemp
d7cf0d5bca add parse_id_from_url method 2015-07-21 11:30:04 +02:00
artemp
f19ddf81ba SVG - add gradient test (ref #2989) 2015-07-21 10:35:21 +02:00
artemp
61a2ef7ebb update test data 2015-07-21 10:29:19 +02:00
artemp
27fb4a9e00 update tests 2015-07-20 20:36:31 +02:00
artemp
0625b90067 SVG unit test - add <line> test
(http://www.w3.org/TR/SVGTiny12/shapes.html#LineElement)
2015-07-20 17:44:47 +02:00
artemp
fb155a57cd support compilers that can't construct tuple from initializer list 2015-07-20 17:16:35 +02:00
artemp
6a2d0b9ebf started adding svg parsing tests to increase test coverage (work-in-progress) 2015-07-20 15:41:35 +02:00