Pebble dynamic memory allocation has been improved and will now detect when you try to free() memory twice.
With Pebble 2.1 your application will be killed and a message is shown in the console so you can detect and fix this problem, instead of potentially causing a memory corruption issue.
IMPORTANT: You will need to update your Pebble to run apps built with the 2.1 SDK. Applications compiled with the SDK 2.1 will not appear in the menu and will not run on Pebble firmware 2.0.
Detailed List of Changes:
Changes for Firmware:
Fixed crash caused by calling number_window_set_label
Fixed white line at the bottom of MenuLayer when last row is selected
Fixed an issue where the watch would get into a reset loop after boot
Fixed issue that sometimes caused persistent storage values to not persist
Fixed issue where caller ID shows info from the previous call
Fixed caller ID sometimes not displaying on outgoing calls
Pebble dynamic memory allocation has been improved. Your application will now be killed when you try to free() memory twice
Apps can no longer crash the watch on app exit
Bluetooth reconnection is more reliable
Battery monitor is more consistent
Multiple power reduction improvements
Documentation improvements
Clip text instead of truncating when vertical space is inadequate
Notifications can be cleared via the Notification section in the Settings menu
Changes for PebbleKit iOS:
Some improvements to datalogging to help troubleshoot issues
Changes for PebbleKit Android:
No changes
Changes for SDK Tools:
Allow firmware bundles to be installed with the install command
Allow SDK location to be overridden by the PEBBLE_SDK_PATH environment variable