这篇教程C++ BAIL_IF_MACRO函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BAIL_IF_MACRO函数的典型用法代码示例。如果您正苦于以下问题:C++ BAIL_IF_MACRO函数的具体用法?C++ BAIL_IF_MACRO怎么用?C++ BAIL_IF_MACRO使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BAIL_IF_MACRO函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: BAIL_IF_MACROvoid *__PHYSFS_platformCreateMutex(void){ int rc; PthreadMutex *m = (PthreadMutex *) allocator.Malloc(sizeof (PthreadMutex)); BAIL_IF_MACRO(m == NULL, ERR_OUT_OF_MEMORY, NULL); rc = pthread_mutex_init(&m->mutex, NULL); if (rc != 0) { allocator.Free(m); BAIL_MACRO(strerror(rc), NULL); } /* if */ m->count = 0; m->owner = (pthread_t) 0xDEADBEEF; return ((void *) m);} /* __PHYSFS_platformCreateMutex */
开发者ID:AndroidAppList,项目名称:Android-Supertux,代码行数:16,
示例2: ZIP_fileClosestatic int ZIP_fileClose(fvoid *opaque){ ZIPfileinfo *finfo = (ZIPfileinfo *) opaque; BAIL_IF_MACRO(!__PHYSFS_platformClose(finfo->handle), NULL, 0); if (finfo->entry->compression_method != COMPMETH_NONE) inflateEnd(&finfo->stream); /* FIXME clean AES context */ if (finfo->buffer != NULL) allocator.Free(finfo->buffer); allocator.Free(finfo); return(1);} /* ZIP_fileClose */
开发者ID:Dahrkael,项目名称:PhysFS-AES,代码行数:16,
示例3: BAIL_IF_MACROstatic char *unicodeToUtf8Heap(const WCHAR *w_str){ char *retval = NULL; if (w_str != NULL) { void *ptr = NULL; const PHYSFS_uint64 len = (wStrLen(w_str) * 4) + 1; retval = allocator.Malloc(len); BAIL_IF_MACRO(!retval, PHYSFS_ERR_OUT_OF_MEMORY, NULL); PHYSFS_utf8FromUtf16((const PHYSFS_uint16 *) w_str, retval, len); ptr = allocator.Realloc(retval, strlen(retval) + 1); /* shrink. */ if (ptr != NULL) retval = (char *) ptr; } /* if */ return retval;} /* unicodeToUtf8Heap */
开发者ID:Jopnal,项目名称:physfs,代码行数:16,
示例4: mallocstatic DirHandle *HOG_openArchive(const char *name, int forWriting){ HOGinfo *info; DirHandle *retval = malloc(sizeof (DirHandle)); PHYSFS_sint64 modtime = __PHYSFS_platformGetLastModTime(name); BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL); info = retval->opaque = malloc(sizeof (HOGinfo)); if (info == NULL) { __PHYSFS_setError(ERR_OUT_OF_MEMORY); goto HOG_openArchive_failed; } /* if */ memset(info, '/0', sizeof (HOGinfo)); info->filename = (char *) malloc(strlen(name) + 1); if (info->filename == NULL) { __PHYSFS_setError(ERR_OUT_OF_MEMORY); goto HOG_openArchive_failed; } /* if */ if (!hog_load_entries(name, forWriting, info)) goto HOG_openArchive_failed; strcpy(info->filename, name); info->last_mod_time = modtime; retval->funcs = &__PHYSFS_DirFunctions_HOG; return(retval);HOG_openArchive_failed: if (retval != NULL) { if (retval->opaque != NULL) { if (info->filename != NULL) free(info->filename); if (info->entries != NULL) free(info->entries); free(info); } /* if */ free(retval); } /* if */ return(NULL);} /* HOG_openArchive */
开发者ID:UIKit0,项目名称:paragui,代码行数:47,
示例5: read_fmt_chunk/* * Read in a fmt_t from disk. This makes this process safe regardless of * the processor's byte order or how the fmt_t structure is packed. * Note that the union "fmt" is not read in here; that is handled as * needed in the read_fmt_* functions. */static int read_fmt_chunk(SDL_RWops *rw, fmt_t *fmt){ /* skip reading the chunk ID, since it was already read at this point... */ fmt->chunkID = fmtID; BAIL_IF_MACRO(!read_le32(rw, &fmt->chunkSize), NULL, 0); BAIL_IF_MACRO(fmt->chunkSize < 16, "WAV: Invalid chunk size", 0); fmt->next_chunk_offset = SDL_RWtell(rw) + fmt->chunkSize; BAIL_IF_MACRO(!read_le16(rw, &fmt->wFormatTag), NULL, 0); BAIL_IF_MACRO(!read_le16(rw, &fmt->wChannels), NULL, 0); BAIL_IF_MACRO(!read_le32(rw, &fmt->dwSamplesPerSec), NULL, 0); BAIL_IF_MACRO(!read_le32(rw, &fmt->dwAvgBytesPerSec), NULL, 0); BAIL_IF_MACRO(!read_le16(rw, &fmt->wBlockAlign), NULL, 0); BAIL_IF_MACRO(!read_le16(rw, &fmt->wBitsPerSample), NULL, 0); return(1);} /* read_fmt_chunk */
开发者ID:BPaden,项目名称:garglk,代码行数:24,
示例6: sizeofchar *__PHYSFS_platformGetUserName(void){ DWORD bufsize = 0; char *retval = NULL; if (pGetUserNameW(NULL, &bufsize) == 0) /* This SHOULD fail. */ { LPWSTR wbuf = (LPWSTR)__PHYSFS_smallAlloc(bufsize * sizeof(WCHAR)); BAIL_IF_MACRO(wbuf == NULL, ERR_OUT_OF_MEMORY, NULL); if (pGetUserNameW(wbuf, &bufsize) == 0) /* ?! */ __PHYSFS_setError(winApiStrError()); else retval = unicodeToUtf8Heap(wbuf); __PHYSFS_smallFree(wbuf); } /* if */ return(retval);} /* __PHYSFS_platformGetUserName */
开发者ID:ahrnbom,项目名称:physfs-uwp,代码行数:18,
示例7: Sound_Rewindint Sound_Rewind(Sound_Sample *sample){ Sound_SampleInternal *internal; BAIL_IF_MACRO(!initialized, ERR_NOT_INITIALIZED, 0); internal = (Sound_SampleInternal *) sample->opaque; if (!internal->funcs->rewind(sample)) { sample->flags |= SOUND_SAMPLEFLAG_ERROR; return(0); } /* if */ sample->flags &= ~SOUND_SAMPLEFLAG_EAGAIN; sample->flags &= ~SOUND_SAMPLEFLAG_ERROR; sample->flags &= ~SOUND_SAMPLEFLAG_EOF; return(1);} /* Sound_Rewind */
开发者ID:AvelNaytroud,项目名称:libsdl-sound,代码行数:18,
示例8: BAIL_IF_MACROstatic LinkedStringList *HOG_enumerateFiles(DirHandle *h, const char *dirname, int omitSymLinks){ HOGinfo *info = ((HOGinfo *) h->opaque); HOGentry *entry = info->entries; LinkedStringList *retval = NULL, *p = NULL; PHYSFS_uint32 max = info->entryCount; PHYSFS_uint32 i; /* no directories in HOG files. */ BAIL_IF_MACRO(*dirname != '/0', ERR_NOT_A_DIR, NULL); for (i = 0; i < max; i++, entry++) retval = __PHYSFS_addToLinkedStringList(retval, &p, entry->name, -1); return(retval);} /* HOG_enumerateFiles */
开发者ID:UIKit0,项目名称:paragui,代码行数:18,
示例9: Sound_Quitint Sound_Quit(void){ ErrMsg *err; ErrMsg *nexterr = NULL; size_t i; BAIL_IF_MACRO(!initialized, ERR_NOT_INITIALIZED, 0); while (((volatile Sound_Sample *) sample_list) != NULL) Sound_FreeSample(sample_list); initialized = 0; SDL_DestroyMutex(samplelist_mutex); samplelist_mutex = NULL; sample_list = NULL; for (i = 0; decoders[i].funcs != NULL; i++) { if (decoders[i].available) { decoders[i].funcs->quit(); decoders[i].available = 0; } /* if */ } /* for */ if (available_decoders != NULL) free((void *) available_decoders); available_decoders = NULL; /* clean up error state for each thread... */ SDL_LockMutex(errorlist_mutex); for (err = error_msgs; err != NULL; err = nexterr) { nexterr = err->next; free(err); } /* for */ error_msgs = NULL; SDL_UnlockMutex(errorlist_mutex); SDL_DestroyMutex(errorlist_mutex); errorlist_mutex = NULL; return(1);} /* Sound_Quit */
开发者ID:AvelNaytroud,项目名称:libsdl-sound,代码行数:44,
示例10: BAIL_IF_MACROstatic UNPKentry *slbLoadEntries(PHYSFS_Io *io, PHYSFS_uint32 fileCount){ UNPKentry *entries = NULL; UNPKentry *entry = NULL; entries = (UNPKentry *) allocator.Malloc(sizeof (UNPKentry) * fileCount); BAIL_IF_MACRO(entries == NULL, PHYSFS_ERR_OUT_OF_MEMORY, NULL); for (entry = entries; fileCount > 0; fileCount--, entry++) { char *ptr; /* don't include the '/' in the beginning */ char backslash; GOTO_IF_MACRO(!__PHYSFS_readAll(io, &backslash, 1), ERRPASS, failed); GOTO_IF_MACRO(backslash != '//', ERRPASS, failed); /* read the rest of the buffer, 63 bytes */ GOTO_IF_MACRO(!__PHYSFS_readAll(io, &entry->name, 63), ERRPASS, failed); entry->name[63] = '/0'; /* in case the name lacks the null terminator */ /* convert backslashes */ for (ptr = entry->name; *ptr; ptr++) { if (*ptr == '//') *ptr = '/'; } /* for */ GOTO_IF_MACRO(!__PHYSFS_readAll(io, &entry->startPos, 4), ERRPASS, failed); entry->startPos = PHYSFS_swapULE32(entry->startPos); GOTO_IF_MACRO(!__PHYSFS_readAll(io, &entry->size, 4), ERRPASS, failed); entry->size = PHYSFS_swapULE32(entry->size); } /* for */ return entries;failed: allocator.Free(entries); return NULL;} /* slbLoadEntries */
开发者ID:Tulioh,项目名称:android-libs,代码行数:43,
示例11: mallocchar *__PHYSFS_platformGetUserName(void){ DWORD bufsize = 0; LPTSTR retval = NULL; if (GetUserName(NULL, &bufsize) == 0) /* This SHOULD fail. */ { retval = (LPTSTR) malloc(bufsize); BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL); if (GetUserName(retval, &bufsize) == 0) /* ?! */ { __PHYSFS_setError(win32strerror()); free(retval); retval = NULL; } /* if */ } /* if */ return((char *) retval);} /* __PHYSFS_platformGetUserName */
开发者ID:newerthcom,项目名称:savagerebirth,代码行数:19,
示例12: mvl_load_entriesstatic int mvl_load_entries(const char *name, int forWriting, MVLinfo *info){ void *fh = NULL; PHYSFS_uint32 fileCount; PHYSFS_uint32 location = 8; /* sizeof sig. */ MVLentry *entry; BAIL_IF_MACRO(!mvl_open(name, forWriting, &fh, &fileCount), NULL, 0); info->entryCount = fileCount; info->entries = (MVLentry *) allocator.Malloc(sizeof(MVLentry)*fileCount); if (info->entries == NULL) { __PHYSFS_platformClose(fh); BAIL_MACRO(ERR_OUT_OF_MEMORY, 0); } /* if */ location += (17 * fileCount); for (entry = info->entries; fileCount > 0; fileCount--, entry++) { if (__PHYSFS_platformRead(fh, &entry->name, 13, 1) != 1) { __PHYSFS_platformClose(fh); return 0; } /* if */ if (__PHYSFS_platformRead(fh, &entry->size, 4, 1) != 1) { __PHYSFS_platformClose(fh); return 0; } /* if */ entry->size = PHYSFS_swapULE32(entry->size); entry->startPos = location; location += entry->size; } /* for */ __PHYSFS_platformClose(fh); __PHYSFS_sort(info->entries, info->entryCount, mvl_entry_cmp, mvl_entry_swap); return 1;} /* mvl_load_entries */
开发者ID:AndroidAppList,项目名称:Android-Supertux,代码行数:43,
示例13: openstatic void *doOpen(const char *filename, int mode){ int fd; int *retval; errno = 0; fd = open(filename, mode, S_IRUSR | S_IWUSR); BAIL_IF_MACRO(fd < 0, strerror(errno), NULL); retval = (int *) malloc(sizeof (int)); if (retval == NULL) { close(fd); BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); } /* if */ *retval = fd; return((void *) retval);} /* doOpen */
开发者ID:jcubic,项目名称:ToME,代码行数:19,
示例14: __PHYSFS_platformCvtToDependentstatic FileHandle *doOpen(DirHandle *h, const char *name, void *(*openFunc)(const char *filename), int *fileExists, const FileFunctions *fileFuncs){ char *f = __PHYSFS_platformCvtToDependent((char *)(h->opaque), name, NULL); void *rc; FileHandle *retval; BAIL_IF_MACRO(f == NULL, NULL, NULL); if (fileExists != NULL) { *fileExists = __PHYSFS_platformExists(f); if (!(*fileExists)) { free(f); return(NULL); } /* if */ } /* if */ retval = (FileHandle *) malloc(sizeof (FileHandle)); if (!retval) { free(f); BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); } /* if */ rc = openFunc(f); free(f); if (!rc) { free(retval); return(NULL); } /* if */ retval->opaque = (void *) rc; retval->dirHandle = h; retval->funcs = fileFuncs; return(retval);} /* doOpen */
开发者ID:UIKit0,项目名称:paragui,代码行数:42,
示例15: determineUserDir /* * Try to make use of GetUserProfileDirectoryW(), which isn't available on * some common variants of Win32. If we can't use this, we just punt and * use the physfs base dir for the user dir, too. * * On success, module-scope variable (userDir) will have a pointer to * a malloc()'d string of the user's profile dir, and a non-zero value is * returned. If we can't determine the profile dir, (userDir) will * be NULL, and zero is returned. */static int determineUserDir(void){ if (userDir != NULL) return(1); /* already good to go. */ const wchar_t* path = Windows::Storage::ApplicationData::Current->LocalFolder->Path->Data(); wchar_t path2[1024]; wcscpy_s(path2, path); wcscat_s(path2, L"//"); userDir = unicodeToUtf8Heap(path2); if (userDir == NULL) /* couldn't get profile for some reason. */ { /* Might just be a non-NT system; resort to the basedir. */ userDir = getExePath(); BAIL_IF_MACRO(userDir == NULL, NULL, 0); /* STILL failed?! */ } /* if */ return(1); /* We made it: hit the showers. */} /* determineUserDir */
开发者ID:ahrnbom,项目名称:physfs-uwp,代码行数:31,
示例16: __PHYSFS_platformStatint __PHYSFS_platformStat(const char *filename, PHYSFS_Stat *st){ struct stat statbuf; BAIL_IF_MACRO(lstat(filename, &statbuf) == -1, errcodeFromErrno(), 0); if (S_ISREG(statbuf.st_mode)) { st->filetype = PHYSFS_FILETYPE_REGULAR; st->filesize = statbuf.st_size; } /* if */ else if(S_ISDIR(statbuf.st_mode)) { st->filetype = PHYSFS_FILETYPE_DIRECTORY; st->filesize = 0; } /* else if */ else if(S_ISLNK(statbuf.st_mode)) { st->filetype = PHYSFS_FILETYPE_SYMLINK; st->filesize = 0; } /* else if */ else { st->filetype = PHYSFS_FILETYPE_OTHER; st->filesize = statbuf.st_size; } /* else */ st->modtime = statbuf.st_mtime; st->createtime = statbuf.st_ctime; st->accesstime = statbuf.st_atime; /* !!! FIXME: maybe we should just report full permissions? */ st->readonly = access(filename, W_OK); return 1;} /* __PHYSFS_platformStat */
开发者ID:pixelballoon,项目名称:pixelboost-dependencies,代码行数:38,
示例17: BAIL_IF_MACROstatic UNPKentry *qpakLoadEntries(PHYSFS_Io *io, PHYSFS_uint32 fileCount){ UNPKentry *entries = NULL; UNPKentry *entry = NULL; entries = (UNPKentry *) allocator.Malloc(sizeof (UNPKentry) * fileCount); BAIL_IF_MACRO(entries == NULL, PHYSFS_ERR_OUT_OF_MEMORY, NULL); for (entry = entries; fileCount > 0; fileCount--, entry++) { if (!__PHYSFS_readAll(io, &entry->name, 56)) goto failed; if (!__PHYSFS_readAll(io, &entry->startPos, 4)) goto failed; if (!__PHYSFS_readAll(io, &entry->size, 4)) goto failed; entry->size = PHYSFS_swapULE32(entry->size); entry->startPos = PHYSFS_swapULE32(entry->startPos); } /* for */ return entries;failed: allocator.Free(entries); return NULL;} /* qpakLoadEntries */
开发者ID:CaF2,项目名称:hw,代码行数:23,
示例18: pGetCurrentDirectoryWchar *__PHYSFS_platformCurrentDir(void){ char *retval = NULL; WCHAR *wbuf = NULL; DWORD buflen = 0; buflen = pGetCurrentDirectoryW(buflen, NULL); wbuf = (WCHAR *) __PHYSFS_smallAlloc((buflen + 2) * sizeof (WCHAR)); BAIL_IF_MACRO(wbuf == NULL, ERR_OUT_OF_MEMORY, NULL); pGetCurrentDirectoryW(buflen, wbuf); if (wbuf[buflen - 2] == '//') wbuf[buflen-1] = '/0'; /* just in case... */ else { wbuf[buflen - 1] = '//'; wbuf[buflen] = '/0'; } /* else */ retval = unicodeToUtf8Heap(wbuf); __PHYSFS_smallFree(wbuf); return(retval);} /* __PHYSFS_platformCurrentDir */
开发者ID:ahrnbom,项目名称:physfs-uwp,代码行数:23,
示例19: is_cdrom_drivestatic int is_cdrom_drive(ULONG drive){ PHYSFS_uint32 param, data; ULONG ul1, ul2; APIRET rc; HFILE hfile = NULLHANDLE; char drivename[3] = { 'A' + drive, ':', '/0' }; rc = DosOpen(drivename, &hfile, &ul1, 0, 0, OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW, OPEN_FLAGS_DASD | OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE, NULL); BAIL_IF_MACRO(rc != NO_ERROR, NULL, 0); data = 0; param = PHYSFS_swapULE32(CD01); ul1 = ul2 = sizeof (PHYSFS_uint32); rc = DosDevIOCtl(hfile, IOCTL_CDROMDISK, CDROMDISK_GETDRIVER, ¶m, sizeof (param), &ul1, &data, sizeof (data), &ul2); DosClose(hfile); return((rc == NO_ERROR) && (PHYSFS_swapULE32(data) == CD01));} /* is_cdrom_drive */
开发者ID:UIKit0,项目名称:paragui,代码行数:23,
示例20: __PHYSFS_platformCvtToDependentstatic fvoid *doOpen(dvoid *opaque, const char *name, void *(*openFunc)(const char *filename), int *fileExists){ char *f = __PHYSFS_platformCvtToDependent((char *) opaque, name, NULL); void *rc = NULL; BAIL_IF_MACRO(f == NULL, NULL, NULL); if (fileExists != NULL) { *fileExists = __PHYSFS_platformExists(f); if (!(*fileExists)) { allocator.Free(f); return(NULL); } /* if */ } /* if */ rc = openFunc(f); allocator.Free(f); return((fvoid *) rc);} /* doOpen */
开发者ID:leonlee,项目名称:tome,代码行数:24,
示例21: MIDI_initstatic int MIDI_init(void){ BAIL_IF_MACRO(Timidity_Init() < 0, "MIDI: Could not initialise", 0); return(1);} /* MIDI_init */
开发者ID:OS2World,项目名称:LIB-SDL-2014,代码行数:5,
示例22: PHYSFS_writeUBE64int PHYSFS_writeUBE64(PHYSFS_File *file, PHYSFS_uint64 val){ PHYSFS_uint64 out = PHYSFS_swapUBE64(val); BAIL_IF_MACRO(PHYSFS_write(file, &out, sizeof (out), 1) != 1, NULL, 0); return(1);} /* PHYSFS_writeUBE64 */
开发者ID:mmozeiko,项目名称:Squares3D,代码行数:6,
示例23: PHYSFS_writeSBE32int PHYSFS_writeSBE32(PHYSFS_File *file, PHYSFS_sint32 val){ PHYSFS_sint32 out = PHYSFS_swapSBE32(val); BAIL_IF_MACRO(PHYSFS_write(file, &out, sizeof (out), 1) != 1, NULL, 0); return(1);} /* PHYSFS_writeSBE32 */
开发者ID:mmozeiko,项目名称:Squares3D,代码行数:6,
示例24: PHYSFS_writeULE16int PHYSFS_writeULE16(PHYSFS_File *file, PHYSFS_uint16 val){ PHYSFS_uint16 out = PHYSFS_swapULE16(val); BAIL_IF_MACRO(PHYSFS_write(file, &out, sizeof (out), 1) != 1, NULL, 0); return(1);} /* PHYSFS_writeULE16 */
开发者ID:mmozeiko,项目名称:Squares3D,代码行数:6,
示例25: __PHYSFS_platformDeleteint __PHYSFS_platformDelete(const char *path){ BAIL_IF_MACRO(remove(path) == -1, errcodeFromErrno(), 0); return 1;} /* __PHYSFS_platformDelete */
开发者ID:JGunning,项目名称:OpenWorms2,代码行数:5,
示例26: __PHYSFS_platformFlushint __PHYSFS_platformFlush(void *opaque){ const int fd = *((int *) opaque); BAIL_IF_MACRO(fsync(fd) == -1, errcodeFromErrno(), 0); return 1;} /* __PHYSFS_platformFlush */
开发者ID:JGunning,项目名称:OpenWorms2,代码行数:6,
示例27: __PHYSFS_platformMkDirint __PHYSFS_platformMkDir(const char *path){ const int rc = mkdir(path, S_IRWXU); BAIL_IF_MACRO(rc == -1, errcodeFromErrno(), 0); return 1;} /* __PHYSFS_platformMkDir */
开发者ID:JGunning,项目名称:OpenWorms2,代码行数:6,
示例28: AU_openstatic int AU_open(Sound_Sample *sample, const char *ext){ Sound_SampleInternal *internal = sample->opaque; SDL_RWops *rw = internal->rw; int skip, hsize, i, bytes_per_second; struct au_file_hdr hdr; struct audec *dec; char c; /* read_au_header() will do byte order swapping. */ BAIL_IF_MACRO(!read_au_header(rw, &hdr), "AU: bad header", 0); dec = malloc(sizeof *dec); BAIL_IF_MACRO(dec == NULL, ERR_OUT_OF_MEMORY, 0); internal->decoder_private = dec; if (hdr.magic == AU_MAGIC) { /* valid magic */ dec->encoding = hdr.encoding; switch(dec->encoding) { case AU_ENC_ULAW_8: /* Convert 8-bit C++ BAIL_MACRO函数代码示例 C++ BAIL_IF_ERR函数代码示例
|