OutputLogDevice *SearchEngineLog::CreateLog(int device, ...) { va_list args; const uni_char *fname; OpFileFolder folder; FileLogger *flogger; switch (device & 255) { case SearchEngineLog::File: case SearchEngineLog::FolderFile: { if ((flogger = OP_NEW(FileLogger, ((device & SearchEngineLog::LogOnce) != 0))) == NULL) return NULL; va_start(args, device); fname = va_arg(args, const uni_char *); if ((device & 255) == SearchEngineLog::FolderFile) folder = (OpFileFolder)va_arg(args, int); else folder = OPFILE_ABSOLUTE_FOLDER; va_end(args); if (OpStatus::IsError(flogger->Open((device & SearchEngineLog::FOverwrite) != 0, fname, folder))) { OP_DELETE(flogger); return NULL; } return flogger; } }