* Reimplement ASRectTable using unordered_map to avoid obscure NSMapTable exception.
The new class is called ASRectMap, which patterns alongside ASIntegerMap in both name and implementation.
After some pretty detailed investigation, including study of open-source reimplementations
of Foundation, the best lead I've found on the NSMapTable exception is that
some NSPointerFunction types are not fully supported. Strangely, the ones being used
do seem to work fine almost all of the time.
The main concern is the Struct memory type, which is not officially re-declared in
NSMapTable, and as such the documentation claims that there may exist some
combinations of NSPointerFunction that are not supported.
Because the exception is occurring frequently enough to be a concern (in the hundreds
to low thousands, though only 50 a day) - I decided to replace NSMapTable entirely
in order to ensure full correctness.
"*** -[NSMapTable initWithKeyPointerFunctions:valuePointerFunctions:capacity:] Requested configuration not supported."
* Fix Xcode project
- Fix an insta-crash that's caused by Webservice.load method to call its completion block off the main thread.
- Fix incorrect http status code check.
- Bump the deployment target to get the project compiling.
* Revert "Adds support for specifying a quality indexed array of URLs (#557)"
This reverts commit 3c77d4a5da44c46c7b80b2a627c95389b7d6352d.
* Add CHANGELOG entry
* Add unit tests for ASScrollNode
* Make sure ASScrollNode's size is clamped against its size range
* Invalidate ASScrollNode's calculated layout if its scrollable directions changed
* Update comment
* Update CHANGELOG
* Address Adlai's comments
Before:
- Even if a pending layout was applied before, it'll be unnecessarily applied again in next layout passes and cause `-calculatedLayoutDidChange` being called multiple times.
After:
- If a pending layout was applied, the calculated layout will not be ignored but reused, if possible, in next layout passes.
Test plan: testSetNeedsLayoutAndNormalLayoutPass in #424.
When Obj-C is selected on this page, the bottom half of the documentation is missing. When Swift is selected, malformed content appears where the documentation is nested inside the code block.
Repro'd here in Safari and Chrome: http://texturegroup.org/docs/containers-asnodecontroller.html
I think the bug is that <PhotoCellNode> is being parsed as an HTML tag, and this should fix it.
* Make our async deallocation functions take a double pointer, so we can be sure we've released before the queue drains
* Make it a class property
* Fix the return type
* Use a locker
* Improve release notes
* [ASCollectionView] Ensure -invalidateFlowLayoutDelegateMetrics is called for UIKit passthrough cells.
This allows rotation to work properly when rotating UIKit passthrough
cells that need to change width.
* [ASCollectionView] No need to verify node is still in model to handle view-only notifications.
* [ASCollectionView] Improve performance and behavior of rotation / bounds changes.
See #430 for details.
* Edit CHANGELOG.md
* [ASDataController] Implement -relayoutAllNodesWithInvalidationBlock:, to flush the ASMainSerialQueue before -invalidateLayout is called.
* Don't set download results if no longer in preload range. (#606)
Good catch by @djblake, if you scroll fast enough, you leave images
set on the image node because didExitPreloadRange (which would have
cleared it) was already called.
* Animated WebP support (#605)
* Updating to support animated WebP
* Fix a deadlock with display link
* Fix playhead issue.
* Fix up timing on iOS 10 and above
* Don't redraw the same frame over and over
* Clear out layer contents if we're an animated GIF on exit range
* Clear out cover image on exit of visible range
* Don't set cover image if we're no longer in display range.
* Don't clear out image if we're not an animated image
* Only set image if we're not already animating
* Get rid of changes to podfile
* Add CHANGELOG entry
* Update license
* Update PINRemoteImage
* Remove commented out lines in example
* [ASDataController] Add nullable specifier to invalidationBlock for relayout of nodes.
* fix SIMULATE_WEB_RESPONSE not imported #449
* add constraint to using catching for layout
* Add TextNode example to test Yoga Layout
* update Yoga version
* add debugging log
* fix lisence
* clean up
* clean up
* fix lisence warning
* add shared scheme
* change sdk version
* revert some metadata
* Merge FlexLayoutExample to TextStressText.
Add flags to control different TextNode used.
* clean up
* fix lisence and syntax
* clean up
* remove xcworkspacedata
* Tiny coding style changes
* Another tiny change related to code style
* Add unit test
* Make sure TextKit components can calculate size in background without upsetting Main Thread Checker
- Add a new thread-safe text view bounds.
- Temporary components stack doesn't have a text view so it can be safely deallocated off main.
* Add ASTextKitComponentsTextView
* Remove unnecessary change
* Fix minor mistake
* ASTextKitComponentsTextView has only 1 initializer
* Minor change
* Switch to atomic property
* Remove manual synthesization