void rfx_context_free(RFX_CONTEXT* context) { RFX_CONTEXT_PRIV *priv; assert(NULL != context); assert(NULL != context->priv); assert(NULL != context->priv->TilePool); assert(NULL != context->priv->BufferPool); priv = context->priv; free(context->quants); ObjectPool_Free(priv->TilePool); rfx_profiler_print(context); rfx_profiler_free(context); if (priv->UseThreads) { CloseThreadpool(context->priv->ThreadPool); DestroyThreadpoolEnvironment(&context->priv->ThreadPoolEnv); free(priv->workObjects); free(priv->tileWorkParams); #ifdef WITH_PROFILER WLog_VRB(TAG, "WARNING: Profiling results probably unusable with multithreaded RemoteFX codec!"); #endif } BufferPool_Free(context->priv->BufferPool); free(context->priv); free(context); }
void rfx_context_free(RFX_CONTEXT* context) { free(context->quants); rfx_pool_free(context->priv->pool); rfx_profiler_print(context); rfx_profiler_free(context); free(context->priv); free(context); }
void rfx_context_free(RFX_CONTEXT* context) { free(context->quants); Queue_Free(context->priv->TilePool); Queue_Free(context->priv->TileQueue); rfx_profiler_print(context); rfx_profiler_free(context); if (context->priv->UseThreads) { CloseThreadpool(context->priv->ThreadPool); DestroyThreadpoolEnvironment(&context->priv->ThreadPoolEnv); } BufferPool_Free(context->priv->BufferPool); free(context->priv); free(context); }
void rfx_context_free(RFX_CONTEXT* context) { free(context->quants); Queue_Free(context->priv->TilePool); Queue_Free(context->priv->TileQueue); rfx_profiler_print(context); rfx_profiler_free(context); if (context->priv->UseThreads) { CloseThreadpool(context->priv->ThreadPool); DestroyThreadpoolEnvironment(&context->priv->ThreadPoolEnv); #ifdef WITH_PROFILER fprintf(stderr, "\nWARNING: Profiling results probably unusable with multithreaded RemoteFX codec!\n"); #endif } BufferPool_Free(context->priv->BufferPool); free(context->priv); free(context); }