libidav/utils.c

changeset 775
e5909dff0dbf
parent 757
7ced4052e8ca
child 789
378b5ab86f77
equal deleted inserted replaced
774:8c8aed7e1756 775:e5909dff0dbf
1207 fclose(in); 1207 fclose(in);
1208 1208
1209 return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH); 1209 return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH);
1210 } 1210 }
1211 1211
1212 struct regdestructor {
1213 cx_destructor_func destructor;
1214 void *data;
1215 };
1216
1217 static void call_destructor(struct regdestructor *d) {
1218 d->destructor(d->data);
1219 }
1220
1221 int util_regdestr(CxMempool *mp, void *data, cx_destructor_func destructor) {
1222 // the ucx maintainer doesn't like me anymore and forces me to
1223 // implement basic stuff by myself
1224 struct regdestructor *reg = cxMalloc(mp->allocator, sizeof(struct regdestructor));
1225 if(!reg) {
1226 return 1;
1227 }
1228 reg->destructor = destructor;
1229 reg->data = data;
1230 cxMempoolSetDestructor(mp, reg, (cx_destructor_func)call_destructor);
1231 return 0;
1232 }

mercurial