Skip to content

Commit

Permalink
Always clean up previous I2C object before new to avoid leaking memory
Browse files Browse the repository at this point in the history
  • Loading branch information
waynepiekarski committed Aug 13, 2022
1 parent a4a950e commit 84c71a5
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions libraries/Wire/Wire.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,13 @@ arduino::MbedI2C::MbedI2C(int sda, int scl) : _sda(digitalPinToPinName(sda)), _s
arduino::MbedI2C::MbedI2C(PinName sda, PinName scl) : _sda(sda), _scl(scl), usedTxBuffer(0), slave_th(osPriorityNormal, 2048, nullptr, "I2CSlave") {}

void arduino::MbedI2C::begin() {
end();
master = new mbed::I2C(_sda, _scl);
}

void arduino::MbedI2C::begin(uint8_t slaveAddr) {
#ifdef DEVICE_I2CSLAVE
end();
slave = new mbed::I2CSlave((PinName)_sda, (PinName)_scl);
slave->address(slaveAddr << 1);
slave_th.start(mbed::callback(this, &arduino::MbedI2C::receiveThd));
Expand Down

0 comments on commit 84c71a5

Please sign in to comment.