The payload param provided in publish is a const. This change
fixes the API to ensure caller that this is the case for all
variations of the publish method.
This change simply adds const to the proper data parameter, to
ensure that the payload provided is not modified by the MQTT
implementation. At the core of this codepath, the method
memmove() is invoked and that is very okay since the src parameter is a const as well.
There are no limitations regarding this change. If caller passes in a
non-const payload, the compiler will gladly handle it as a const anyway.
So, this is 100% backwards compatible.
To test this change, simply call the publish method providing a
const pointer. Example:
The payload param provided in publish is a const. This change fixes the API to ensure caller that this is the case for all variations of the publish method.
This is a proposed fix to issue https://github.com/adafruit/Adafruit_MQTT_Library/issues/115
This change simply adds const to the proper data parameter, to ensure that the payload provided is not modified by the MQTT implementation. At the core of this codepath, the method memmove() is invoked and that is very okay since the src parameter is a const as well.
There are no limitations regarding this change. If caller passes in a non-const payload, the compiler will gladly handle it as a const anyway. So, this is 100% backwards compatible.
To test this change, simply call the publish method providing a const pointer. Example: