Skip to content

Commit e23fbd4

Browse files
authored
Merge pull request #146 from ldorau/Tracking_provider_cannot_change_behavior_of_upstream_provider
Tracking provider cannot change behavior of upstream provider
2 parents a848175 + 6f3c663 commit e23fbd4

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/provider/provider_tracking.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,11 @@ static umf_result_t trackingAlloc(void *hProvider, size_t size,
109109
return ret;
110110
}
111111

112-
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-
}
112+
umf_result_t ret2 = umfMemoryTrackerAdd(p->hTracker, p->pool, *ptr, size);
113+
if (ret2 != 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)