sidoh / esp8266_milight_hub

Replacement for a Milight/LimitlessLED hub hosted on an ESP8266
MIT License
931 stars 219 forks source link

Bugs in LinkedList.h #775

Closed juupje closed 1 year ago

juupje commented 1 year ago

Describe the bug

The function ListNode<T>* LinkedList<T>::getNode(int index) will always return false. This is due to a missing statement that returns current. Moreover, the function LinkedList<T>::add(int index, T _t) does not assign the prev pointer to the object that is to be inserted.

Edit The function T LinkedList<T>::remove(int index) does not assign the prev pointer of the next node to the node before the one that is deleted.

Steps to reproduce

This seems to be of no consequence because getNode is not used outside LinkedList.h and neither are any methods that depend in it. Also, the prev pointer in ListNode is not used outside of LinkedList.h.

Expected behavior

Even though these bugs are currently of no consequence for the existing code, they cause issues for an alarm feature that I am attempting to implement and might cause unexpected behavior in the future.

The correct return statement of getNode should be:

  return _pos==index ? current : false;

and the current code of add include tmp->prev = _prev;.

Setup information

Firmware version

1.10.8

Additional information about my setup is not necessary

sidoh commented 1 year ago

whoops. good catch! if you wanna throw up a PR with these changes happy to merge.

juupje commented 1 year ago

I created a pull request (I think; I'm a newby to git so apologies if I messed up). And many thanks for your efforts on creating this project!