bd23944531
* Asset<T>::QueueLoad didn't trigger any loads in the case where an asset was in a Queued state, it simply returned the reference. This caused problems in the case where an asset was in the process of being cancelled and garbage collected, as it could be in a queued state with nothing actively loading it. The method now detects this case and calls GetAsset(), which triggers a new load. * AssetContainer::IsValid() was returning true for canceled containers that no longer had a root asset. Now it returns false, to help ensure the container doesn't try to get reused. * AssetContainer would add entries to the preloadList even if any potential preloads were filtered out from the load. They are no longer added, since they shouldn't be waiting for any dependent assets to load. (This could cause incorrect warnings to print in some situations) * AssetContainer was erroneously warning about removing assets from a missing waiting list. The warning was removed, as the condition could occur when the same asset was being loading by two different containers - once with dependencies and once without. * AssetDataStream::RequestCancel has been added, as it was missing, but nothing currently needs to use it. * AssetManager::GetAssetContainer() now verifies that the container is valid before attempting to reuse it. This prevents asset containers that are in the middle of cancellation from getting reused.