Henri Verbeet hverbeet@codeweavers.com writes:
+void wine_rb_init(struct wine_rb_tree *tree, wine_rb_compare_func_t *compare) +{
- tree->compare = compare;
- tree->root = NULL;
- tree->stack.entries = malloc(16 * sizeof(*tree->stack.entries));
- if (!tree->stack.entries)
- {
ERR("Failed to allocate stack memory.\n");
- }
You can't hardcode malloc(), the allocator needs to be configurable, particularly for use from the memory management code. Also printing an ERR in that sort of code is not acceptable, errors need to be propagated correctly and handled by the user.
I also still think this would be better as inline functions, at least until it stabilizes. We don't want to change the libwine interface any more than strictly necessary.