fixed memory leaks, added cleanup code, added valgrind scripts to test binaries
This commit is contained in:
@@ -48,7 +48,7 @@ void AqHomeHttpService_Extend(AQH_SERVICE *sv)
|
||||
GWEN_INHERIT_SETDATA(AQH_SERVICE, AQHOME_HTTP, sv, xsv, _freeData);
|
||||
|
||||
xsv->contentTree=AQH_HttpContent_new("root");
|
||||
|
||||
xsv->storageMutex=GWEN_Mutex_new();
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ void _freeData(void *bp, void *p)
|
||||
xsv->storage=NULL;
|
||||
AQH_HttpContent_free(xsv->contentTree);
|
||||
xsv->contentTree=NULL;
|
||||
GWEN_Mutex_free(xsv->storageMutex);
|
||||
|
||||
GWEN_FREE_OBJECT(xsv);
|
||||
}
|
||||
@@ -124,6 +125,65 @@ void AqHomeHttpService_SetContentTree(AQH_SERVICE *sv, AQH_HTTP_CONTENT *c)
|
||||
|
||||
|
||||
|
||||
void AqHomeHttpService_MarkStorageChanged(AQH_SERVICE *sv)
|
||||
{
|
||||
if (sv) {
|
||||
AQHOME_HTTP *xsv;
|
||||
|
||||
xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv);
|
||||
if (xsv) {
|
||||
AQH_Storage_AddRuntimeFlags(xsv->storage, AQH_STORAGE_RTFLAGS_MODIFIED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int AqHomeHttpService_LockStorage(AQH_SERVICE *sv)
|
||||
{
|
||||
if (sv) {
|
||||
AQHOME_HTTP *xsv;
|
||||
|
||||
xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv);
|
||||
if (xsv) {
|
||||
int rv;
|
||||
|
||||
rv=GWEN_Mutex_Lock(xsv->storageMutex);
|
||||
if (rv<0) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error obtaining lock on storage mutex");
|
||||
return rv;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return GWEN_ERROR_GENERIC;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int AqHomeHttpService_UnlockStorage(AQH_SERVICE *sv)
|
||||
{
|
||||
if (sv) {
|
||||
AQHOME_HTTP *xsv;
|
||||
|
||||
xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQHOME_HTTP, sv);
|
||||
if (xsv) {
|
||||
int rv;
|
||||
|
||||
rv=GWEN_Mutex_Unlock(xsv->storageMutex);
|
||||
if (rv<0) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error releasing lock on storage mutex");
|
||||
return rv;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return GWEN_ERROR_GENERIC;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user