Skip to content

Commit e225178

Browse files
committed
Tracking provider cannot change behavior of upstream provider
Tracking provider cannot change behavior of the upstream provider. Tracking provider should be transparent for the upstream provider. Signed-off-by: Lukasz Dorau <[email protected]>
1 parent e26bff8 commit e225178

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/provider/provider_tracking.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,10 @@ static umf_result_t trackingAlloc(void *hProvider, size_t size,
110110
}
111111

112112
ret = umfMemoryTrackerAdd(p->hTracker, p->pool, *ptr, size);
113-
if (ret != UMF_RESULT_SUCCESS && p->hUpstream) {
114-
if (umfMemoryProviderFree(p->hUpstream, *ptr, size)) {
115-
// TODO: LOG
116-
}
113+
if (ret != UMF_RESULT_SUCCESS) {
114+
// DO NOT call umfMemoryProviderFree() here, because the tracking provider
115+
// cannot change behaviour of the upstream provider.
116+
// TODO: LOG
117117
}
118118

119119
return ret;
@@ -131,7 +131,9 @@ static umf_result_t trackingFree(void *hProvider, void *ptr, size_t size) {
131131
if (ptr) {
132132
ret = umfMemoryTrackerRemove(p->hTracker, ptr, size);
133133
if (ret != UMF_RESULT_SUCCESS) {
134-
return ret;
134+
// DO NOT return an error here, because the tracking provider
135+
// cannot change behaviour of the upstream provider.
136+
// TODO: LOG
135137
}
136138
}
137139

0 commit comments

Comments
 (0)