Giovanni Mascellani (@giomasce) commented about dlls/xactengine3_7/xact_dll.c:
+{
- struct wrapper_lookup *lookup;
- UINT ret;
- lookup = HeapAlloc(GetProcessHeap(), 0, sizeof(*lookup));
- if (!lookup)
- {
ERR("Failed to allocate wrapper_lookup!\n");
return E_OUTOFMEMORY;
- }
- lookup->fact = fact;
- lookup->xact = xact;
- EnterCriticalSection(&engine->wb_wrapper_lookup_cs);
- ret = wine_rb_put(&engine->wb_wrapper_lookup, lookup->fact, &lookup->entry);
- LeaveCriticalSection(&engine->wb_wrapper_lookup_cs);
The `wb_` prefix can be removed. It standed for "WaveBank", but it's more sensible to use the same lock and RB tree for all object types as you are doing.