Lines Matching refs:magazine

196 _IsMagazineEmpty(BaseDepot::Magazine *magazine)
198 return magazine->current_round == 0;
203 _IsMagazineFull(BaseDepot::Magazine *magazine)
205 return magazine->current_round == magazine->round_count;
210 _PopMagazine(BaseDepot::Magazine *magazine)
212 return magazine->rounds[--magazine->current_round];
217 _PushMagazine(BaseDepot::Magazine *magazine, void *object)
219 if (_IsMagazineFull(magazine))
221 magazine->rounds[magazine->current_round++] = object;
267 // In a nutshell, we try to get an object from the loaded magazine
268 // if it's not empty, or from the previous magazine if it's full
269 // and finally from the Slab if the magazine depot has no full magazines.
292 // We try to add the object to the loaded magazine if we have one
294 // the magazine depot doesn't provide us with a new empty magazine
330 BaseDepot::_ExchangeWithFull(Magazine* &magazine)
340 SListPush(fEmpty, magazine);
341 magazine = SListPop(fFull);
347 BaseDepot::_ExchangeWithEmpty(Magazine* &magazine)
359 if (magazine) {
360 SListPush(fFull, magazine);
364 magazine = SListPop(fEmpty);
370 BaseDepot::_EmptyMagazine(Magazine *magazine)
372 for (uint16_t i = 0; i < magazine->current_round; i++)
373 ReturnObject(magazine->rounds[i]);
374 _FreeMagazine(magazine);
381 Magazine *magazine = (Magazine *)malloc(sizeof(Magazine)
383 if (magazine) {
384 magazine->next = NULL;
385 magazine->current_round = 0;
386 magazine->round_count = kMagazineCapacity;
389 return magazine;
394 BaseDepot::_FreeMagazine(Magazine *magazine)
396 free(magazine);