Method: AutoC::List#_remove_first

Defined in:
lib/autoc/list.rb

#_remove_first(locator) ⇒ Object



289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# File 'lib/autoc/list.rb', line 289

def _remove_first(locator)
  %{
    #{_node_p} curr;
    #{_node_p} prev;
    assert(target);
    if(#{locator}) {
      assert(curr);
      if(prev) {
        prev->next = curr->next;
      } else {
        target->front = curr->next;
      }
      #{element.destroy.('curr->element') if element.destructible?};
      #{memory.free(:curr)};
      #{'--target->size;' if maintain_size?}
      return 1;
    }
    return 0;
  }
end