static ALCboolean ALCwinmmBackendFactory_init(ALCwinmmBackendFactory* UNUSED(self)) { VECTOR_INIT(PlaybackDevices); VECTOR_INIT(CaptureDevices); return ALC_TRUE; }
ALCboolean alcWinMMInit(BackendFuncs *FuncList) { VECTOR_INIT(PlaybackDevices); VECTOR_INIT(CaptureDevices); *FuncList = WinMMFuncs; return ALC_TRUE; }
int rtb_elem_init(struct rtb_element *self) { memset(self, 0, sizeof(*self)); TAILQ_INIT(&self->children); self->impl = base_impl; self->metatype = RTB_TYPE_ATOM; self->style = NULL; self->state = RTB_STATE_UNATTACHED; self->outer_pad.x = RTB_DEFAULT_OUTER_XPAD; self->outer_pad.y = RTB_DEFAULT_OUTER_YPAD; self->inner_pad.x = RTB_DEFAULT_INNER_XPAD; self->inner_pad.y = RTB_DEFAULT_INNER_YPAD; self->visibility = RTB_UNOBSCURED; self->window = NULL; VECTOR_INIT(&self->handlers, &stdlib_allocator, 1); rtb_stylequad_init(&self->stylequad); LAYOUT_DEBUG_INIT(); return 0; }
int ATL_UIAMAX(const int N, const TYPE *X, const int incX) /* * Special code for AltiVec, using vector instructions */ { register TYPE xmax, x0, x1, x2, x3; const TYPE *stX=X, *x, *xp=X, *vxp; int i, nr; vector float v0, v1, v2, vmax = VECTOR_INIT(0.0f, 0.0f, 0.0f, 0.0f); void *vp; float *tp; int cwrd = ATL_MulBySize(N)>>4; char ch[64]; if (N > 0) { if (cwrd >= 64) { cwrd = (cwrd+31)>>5; if (cwrd <= 256) cwrd = ATL_GetCtrl(512, cwrd <= 255 ? cwrd : 0, 0); else /* use all pipes */ { cwrd >>= 2; cwrd = ATL_GetCtrl(2048, cwrd <= 255 ? cwrd : 0, 0); ATL_pfavR(X+128, cwrd, 1); ATL_pfavR(X+256, cwrd, 2); ATL_pfavR(X+384, cwrd, 3); } } else cwrd = ATL_GetCtrl(64, (cwrd+3)>>2, 4);
AL_API ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots) { ALCcontext *context; VECTOR(ALeffectslot*) slotvec; ALsizei cur; ALenum err; context = GetContextRef(); if(!context) return; VECTOR_INIT(slotvec); if(!(n >= 0)) SET_ERROR_AND_GOTO(context, AL_INVALID_VALUE, done); if(!VECTOR_RESERVE(slotvec, n)) SET_ERROR_AND_GOTO(context, AL_OUT_OF_MEMORY, done); for(cur = 0;cur < n;cur++) { ALeffectslot *slot = al_calloc(16, sizeof(ALeffectslot)); err = AL_OUT_OF_MEMORY; if(!slot || (err=InitEffectSlot(slot)) != AL_NO_ERROR) { al_free(slot); alDeleteAuxiliaryEffectSlots(cur, effectslots); SET_ERROR_AND_GOTO(context, err, done); } err = NewThunkEntry(&slot->id); if(err == AL_NO_ERROR) err = InsertUIntMapEntry(&context->EffectSlotMap, slot->id, slot); if(err != AL_NO_ERROR) { FreeThunkEntry(slot->id); DELETE_OBJ(slot->Params.EffectState); al_free(slot); alDeleteAuxiliaryEffectSlots(cur, effectslots); SET_ERROR_AND_GOTO(context, err, done); } aluInitEffectPanning(slot); VECTOR_PUSH_BACK(slotvec, slot); effectslots[cur] = slot->id; } err = AddEffectSlotArray(context, VECTOR_BEGIN(slotvec), n); if(err != AL_NO_ERROR) { alDeleteAuxiliaryEffectSlots(cur, effectslots); SET_ERROR_AND_GOTO(context, err, done); } done: VECTOR_DEINIT(slotvec); ALCcontext_DecRef(context); }
/** * This function ensures idb's entry. */ static struct DBData inter_achievement_ensure_char_achievements(union DBKey key, va_list args) { struct char_achievements *ca = NULL; CREATE(ca, struct char_achievements, 1); VECTOR_INIT(*ca); return DB->ptr2data(ca); }
t3_highlight_match_t *t3_highlight_new_match(const t3_highlight_t *highlight) { t3_highlight_match_t *result = malloc(sizeof(t3_highlight_match_t)); if (result == NULL) return NULL; VECTOR_INIT(result->mapping); if (!VECTOR_RESERVE(result->mapping)) { free(result); return NULL; } result->highlight = highlight; memset(&VECTOR_LAST(result->mapping), 0, sizeof(state_mapping_t)); t3_highlight_reset(result, 0); return result; }
void mapif_parse_rodex_requestinbox(int fd) { int count; int char_id = RFIFOL(fd,2); int account_id = RFIFOL(fd, 6); int8 flag = RFIFOB(fd, 10); int8 opentype = RFIFOB(fd, 11); int64 mail_id = RFIFOQ(fd, 12); struct rodex_maillist mails = { 0 }; VECTOR_INIT(mails); if (flag == 0) count = inter_rodex->fromsql(char_id, account_id, opentype, 0, &mails); else count = inter_rodex->fromsql(char_id, account_id, opentype, mail_id, &mails); mapif->rodex_sendinbox(fd, char_id, opentype, flag, count, mail_id, &mails); VECTOR_CLEAR(mails); }
void ALsoundfont_deleteSoundfont(ALsoundfont *self, ALCdevice *device) { ALsfpreset **presets; ALsizei num_presets; VECTOR(ALbuffer*) buffers; ALsizei i; VECTOR_INIT(buffers); presets = ExchangePtr((XchgPtr*)&self->Presets, NULL); num_presets = ExchangeInt(&self->NumPresets, 0); for(i = 0;i < num_presets;i++) { ALsfpreset *preset = presets[i]; ALfontsound **sounds; ALsizei num_sounds; ALboolean deleting; ALsizei j; sounds = ExchangePtr((XchgPtr*)&preset->Sounds, NULL); num_sounds = ExchangeInt(&preset->NumSounds, 0); DeletePreset(device, preset); preset = NULL; for(j = 0;j < num_sounds;j++) DecrementRef(&sounds[j]->ref); /* Some fontsounds may not be immediately deletable because they're * linked to another fontsound. When those fontsounds are deleted * they should become deletable, so use a loop until all fontsounds * are deleted. */ do { deleting = AL_FALSE; for(j = 0;j < num_sounds;j++) { if(sounds[j] && ReadRef(&sounds[j]->ref) == 0) { ALbuffer *buffer; deleting = AL_TRUE; if((buffer=ATOMIC_LOAD(&sounds[j]->Buffer)) != NULL) { ALbuffer **iter; #define MATCH_BUFFER(_i) (buffer == *(_i)) VECTOR_FIND_IF(iter, ALbuffer*, buffers, MATCH_BUFFER); if(iter == VECTOR_ITER_END(buffers)) VECTOR_PUSH_BACK(buffers, buffer); #undef MATCH_BUFFER } DeleteFontsound(device, sounds[j]); sounds[j] = NULL; } } } while(deleting); free(sounds); } ALsoundfont_Destruct(self); free(self); #define DELETE_BUFFER(iter) do { \ assert(ReadRef(&(*(iter))->ref) == 0); \ DeleteBuffer(device, *(iter)); \ } while(0) VECTOR_FOR_EACH(ALbuffer*, buffers, DELETE_BUFFER); #undef DELETE_BUFFER VECTOR_DEINIT(buffers); }
/** * Loads console commands list **/ void console_load_defaults(void) { /** * Defines a main category. * * Categories can't be used as commands! * E.G. * - sql update skip * 'sql' is the main category * CP_DEF_C(category) **/ #define CP_DEF_C(x) { #x , CPET_CATEGORY, NULL , NULL, NULL } /** * Defines a sub-category. * * Sub-categories can't be used as commands! * E.G. * - sql update skip * 'update' is a sub-category * CP_DEF_C2(command, category) **/ #define CP_DEF_C2(x,y) { #x , CPET_CATEGORY, NULL , #y, NULL } /** * Defines a command that is inside a category or sub-category * CP_DEF_S(command, category/sub-category) **/ #define CP_DEF_S(x,y) { #x, CPET_FUNCTION, CPCMD_C_A(x,y), #y, NULL } /** * Defines a command that is _not_ inside any category * CP_DEF_S(command) **/ #define CP_DEF(x) { #x , CPET_FUNCTION, CPCMD_A(x), NULL, NULL } struct { char *name; int type; CParseFunc func; char *connect; struct CParseEntry *self; } default_list[] = { CP_DEF(help), /** * Server related commands **/ CP_DEF_C(server), CP_DEF_S(ers_report,server), CP_DEF_S(mem_report,server), CP_DEF_S(malloc_usage,server), CP_DEF_S(exit,server), /** * Sql related commands **/ CP_DEF_C(sql), CP_DEF_C2(update,sql), CP_DEF_S(skip,update), }; int len = ARRAYLENGTH(default_list); struct CParseEntry *cmd; int i; VECTOR_ENSURE(console->input->commands, len, 1); for(i = 0; i < len; i++) { CREATE(cmd, struct CParseEntry, 1); safestrncpy(cmd->cmd, default_list[i].name, CP_CMD_LENGTH); cmd->type = default_list[i].type; switch (cmd->type) { case CPET_FUNCTION: cmd->u.func = default_list[i].func; break; case CPET_CATEGORY: VECTOR_INIT(cmd->u.children); break; case CPET_UNKNOWN: break; } VECTOR_PUSH(console->input->commands, cmd); default_list[i].self = cmd; if (!default_list[i].connect) { VECTOR_ENSURE(console->input->command_list, 1, 1); VECTOR_PUSH(console->input->command_list, cmd); } } for (i = 0; i < len; i++) { int k; if (!default_list[i].connect) continue; ARR_FIND(0, VECTOR_LENGTH(console->input->commands), k, strcmpi(default_list[i].connect, VECTOR_INDEX(console->input->commands, k)->cmd) == 0); if (k != VECTOR_LENGTH(console->input->commands)) { struct CParseEntry *parent = VECTOR_INDEX(console->input->commands, k); Assert_retb(parent->type == CPET_CATEGORY); cmd = default_list[i].self; VECTOR_ENSURE(parent->u.children, 1, 1); VECTOR_PUSH(parent->u.children, cmd); } } #undef CP_DEF_C #undef CP_DEF_C2 #undef CP_DEF_S #undef CP_DEF }
static void GenModList_Construct(GenModList *self) { VECTOR_INIT(self->gens); VECTOR_INIT(self->mods); }