MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / remove

Method remove

src/common/classes/stack.h:286–316  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

284 }
285
286 void remove() {
287 fb_assert(current_entry);
288 current_entry->remove(elem);
289
290 if (elem >= current_entry->getCount()) {
291 if (elem) {
292 // Simple case - just advance pointer
293 elem = 0;
294 if (entries.hasData())
295 current_entry = entries.pop();
296 else
297 current_entry = NULL;
298 }
299 else {
300 // Complicated case - Entry is empty and we need to delete it
301 if (entries.hasData()) {
302 Entry* previous = entries.pop();
303 previous->next = current_entry->next;
304 current_entry->next = NULL;
305 delete current_entry;
306 current_entry = previous;
307 }
308 else {
309 stack.stk = current_entry->next;
310 current_entry->next = NULL;
311 delete current_entry;
312 current_entry = NULL;
313 }
314 }
315 }
316 }
317
318 private:
319 reverse_iterator(const reverse_iterator&); // Not implemented

Callers

nothing calls this directly

Calls 3

getCountMethod · 0.45
hasDataMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected