MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / add_front

Method add_front

Kernel/include/list.h:276–300  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

274 }
275
276 void add_front(const T& obj) {
277 acquireLock(&lock);
278
279 ListNode<T>* node;
280 if(!cache.get_length()){
281 node = (ListNode<T>*)kmalloc(sizeof(ListNode<T>));
282 } else {
283 node = cache.remove_at(0);
284 }
285
286 node->obj = obj;
287 node->next = node->prev = nullptr;
288
289 if (!back) {
290 back = node;
291 }
292 else if (front) {
293 front->prev = node;
294 node->next = front;
295 }
296 front = node;
297 num++;
298
299 releaseLock(&lock);
300 }
301
302 void insert(const T& obj, size_t pos){
303 if(!num){

Callers

nothing calls this directly

Calls 3

kmallocFunction · 0.85
get_lengthMethod · 0.45
remove_atMethod · 0.45

Tested by

no test coverage detected