#include "HalideRuntime.h"
#define INLINE inline __attribute__((weak)) __attribute__((always_inline)) __attribute__((used))
extern "C" {
INLINE void call_destructor(void *user_context, void (*fn)(void *user_context, void *object), void **object, bool should_call) {
void *o = *object;
*object = NULL;
// Call the function
if (o && should_call) {
fn(user_context, o);
}
}
}