void destroyLogData()

in src/generic/log.c [165:215]


void destroyLogData(ClientData clientData, Tcl_Interp * interp)
{

    LogData *logData = NULL;

    if (clientData != NULL) {

	logData = (LogData *) clientData;

	/* ..................................................................... */
	if (logData->listOfFilters != NULL) {

	  int i;
	  LogLevel ** logLevels = logData->listOfFilters;
	  for (i = 0; i < logData->filterSize; i++) {
	    if (logLevels[i] != NULL) {
	      destroyLogLevel(logLevels[i], interp);
	    }
	  }
	  WebFreeIfNotNull(logData->listOfFilters);
	  logData->filterSize = 0;
	}

	/* ................................................................ */
	if (logData->listOfDests != NULL) {

	  int i;
	  LogDest ** logDests = logData->listOfDests;
	  for (i = 0; i < logData->destSize; i++) {
	    if (logDests[i] != NULL) {
	      destroyLogDest(logDests[i], interp);
	    }
	  }
	  WebFreeIfNotNull(logData->listOfDests);
	  logData->destSize = 0;
	}


	/* ................................................................ */
	if (logData->listOfPlugIns != NULL) {

	    resetHashTableWithContent(logData->listOfPlugIns, TCL_STRING_KEYS,
				      destroyLogPlugIn, interp);

	    HashUtlDelFree(logData->listOfPlugIns);
	    logData->listOfPlugIns = NULL;
	}

	WebFreeIfNotNull(logData);
    }
}