pb_bufmgr_cache: flush cache when create_buffer fails and try again

NOTE: This is a candidate for the stable branches.
(cherry picked from commit 39d7de69b1)
This commit is contained in:
Marek Olšák 2011-10-08 00:27:16 +02:00
parent 986319cd20
commit 8b4315cb47

View file

@ -324,6 +324,13 @@ pb_cache_manager_create_buffer(struct pb_manager *_mgr,
return NULL;
buf->buffer = mgr->provider->create_buffer(mgr->provider, size, desc);
/* Empty the cache and try again. */
if (!buf->buffer) {
mgr->base.flush(&mgr->base);
buf->buffer = mgr->provider->create_buffer(mgr->provider, size, desc);
}
if(!buf->buffer) {
FREE(buf);
return NULL;