aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-09-12Merge pull request #1937 from matthijskooijman/stringindexCristian Maglie
String index fixes and cleanups
2014-09-10Fix off-by-one in String::substringMatthijs Kooijman
When checking the `left` argument, it previously allowed having left == len. However, this means the substring starts one past the last character in the string and should return the empty string. In practice, this already worked correctly, because buffer[len] contains the trailing nul, so it would (re)assign the empty string to `out`. However, fixing this check makes it a bit more logical, and prevents a fairly unlikely out-of-buffer write (to address 0x0) when calling substring on an invalidated String: String bar = (char*)NULL; bar.substring(0, 0);
2014-09-10Merge pull request #2279 from cmaglie/fix-leo-upload-osx10.9.4Cristian Maglie
Fix for upload problems on Arduino Leonardo (and derivatives) on OSX 10.9
2014-09-10Simplify String::remove(unsigned int)Matthijs Kooijman
Previously, this method calculated the length of the string from the given index onwards. However, the other remove() method called already contains code for this calculation, which is used when the count passed in is too big. This means we can just pass in a very big count that is guaranteed to point past the end of the string, shrinking the remove method by a few bytes.
2014-09-10Fix bounds check in String::remove()Matthijs Kooijman
Previously, if you passed in a very big index and/or count, the `index + count` could overflow, making the count be used as-is instead of being truncated (causing the string to be updated wrongly and potentially writing to arbitrary memory locations). We can rewrite the comparison to use `len - index` instead. Since we know that index < len, we are sure this subtraction does not overflow, regardless of what values of index and count we pass in. As an added bonus, the `len - index` value already needed be calculated inside the if, so this saves a few instructions in the generated code. To illustrate this problem, consider this code: String foo = "foo"; Serial.println(foo.length()); // Prints 3 foo.remove(1, 65535); // Should remove all but first character Serial.println(foo.length()); // Prints 4 without this patch Not shown in this is example is that some arbitrary memory is written as well.
2014-09-10Remove unneeded check in String::remove(unsigned int)Matthijs Kooijman
This check already happens in the remove(unsigned int, unsigned int) method that is caled, so there is no need to also check this here.
2014-09-06Fixed license for new.cpp and small cosmetic changesCristian Maglie
2014-09-06Correct implementation of gcc specific internal functionsCristian Maglie
The following empty stubs has been replaced by the gcc flag -fno-threadsafe-static: int __cxa_guard_acquire(__guard *); void __cxa_guard_release (__guard *); void __cxa_guard_abort (__guard *); The following empty stubs has been moved into their specific module abi.cpp: void __cxa_pure_virtual(void) __attribute ((noreturn)); void __cxa_deleted_virtual(void) __attribute ((noreturn)); Fix #107
2014-09-06Printable.h doesn't need new.h but only stdlib.h for size_t.Cristian Maglie
Probalby new.h may be removed completely.
2014-09-05Updated version to 1.5.8Cristian Maglie
2014-09-01Fix for upload problems on Arduino Leonardo (and derivatives) with OSX 10.9.4Cristian Maglie
2014-08-25fix Descriptor.cqperez42@gmail.com
2014-08-08Merge branch 'master' into ide-1.5.xCristian Maglie
2014-08-08Added replacement stub for cstdlib atexit() funciton.Christopher Andrews
This is an empty stub to simply allow use of complex types with a non global static lifetime. For more complex handling the function 'atexit' can be redefined in user code. For more information see: https://github.com/arduino/Arduino/pull/2229 https://github.com/arduino/Arduino/issues/1919
2014-08-01SPI Transactions for AVRPaulStoffregen
2014-07-24Merge remote-tracking branch 'arduino/master' into ide-1.5.xCristian Maglie
2014-07-24Merge pull request #2206 from amulya349/masterCristian Maglie
Fix of a bug #2199
2014-07-23Fix of a bugAmulya Kumar Sahoo
2014-07-21Merge pull request #2194 from Fede85/ide-1.5.x_lib-descriptionCristian Maglie
Ide 1.5.x lib description
2014-07-19Merge pull request #2190 from ribbons/compiler-warningsCristian Maglie
Fix two compiler warnings generated by updated toolchain
2014-07-18missing paragraph field in library.propertiesFede85
2014-07-18modified sentences in library.properties filesFede85
2014-07-18Add availableForWrite() to HardwareSerialPaulStoffregen
2014-07-17Cast empty string to char* to fix compiler warningMatt Robinson
Stream::find(char *target) passes an empty terminator string to Stream::findUntil(char *target, char *terminator) which caused a compiler warning with the updated toolchain, so cast it to a char*.
2014-07-02Merge pull request #1912 from Lauszus/issues440Cristian Maglie
Enable user to change the I2C clock frequency by calling setClock in the Wire library
2014-07-02Merge pull request #2148 from Lauszus/prominiCristian Maglie
Arduino Pro and Pro Mini should use eightanaloginputs variant
2014-07-02added support for the ArduinoISPFede85
2014-07-01Update ArduinoWifiShield_upgrade_mac.shCristian Maglie
2014-07-01Update ArduinoWifiShield_upgrade.shAnkit Daftery
File path should be updated, is wrong currently, will throw an error saying files missing.
2014-07-01Merge branch 'master' into ide-1.5.xCristian Maglie
2014-07-01Fixed permission on wifishield upgrade script.Cristian Maglie
2014-07-01Merge pull request #2118 from ↵Cristian Maglie
benoit-artefactlabs/wifishield-upgrade-firmware-mac-path corrected wrong path to firmware binaries in wifishield upgrade script f...
2014-07-01Merge branch 'master' into matthijskooijman-ide-1.5.x-timer-variantCristian Maglie
Conflicts: app/src/processing/app/debug/Compiler.java hardware/arduino/sam/cores/arduino/main.cpp
2014-07-01Merge branch 'ide-1.5.x-timer-variant' of ↵Cristian Maglie
github.com:matthijskooijman/Arduino into matthijskooijman-ide-1.5.x-timer-variant
2014-07-01Merge pull request #2139 from cmaglie/init-variantCristian Maglie
Allow variants to define an initVariant() function that is called at startup
2014-07-01Reverting -flto flag from AVR core until all compatibility problems are ↵Cristian Maglie
worked out. For more info: https://groups.google.com/a/arduino.cc/d/msg/developers/21G5w2HbUOg/NRMW6c9OIFUJ
2014-06-30Merge branch 'master' into ide-1.5.xCristian Maglie
2014-06-30Backported digitalPinToInterrupt macro from IDE 1.5.xCristian Maglie
2014-06-28Arduino Pro and Pro Mini should use eightanaloginputs variant, so all 8 ↵Kristian Lauszus
analog pins can be used
2014-06-27initVariant() is now declared as external "C" function.Cristian Maglie
See #2080 for more details.
2014-06-27Merge branch 'ide-1.5.7' into ide-1.5.xCristian Maglie
2014-06-25Support Atmega8 (and similar that define PE instead of UPE) againMatthijs Kooijman
These chips were previously supported, but since parity error checking was added, this support has broken. Most chips define UPE0 (etc.) for the parity error bit. Some chips don't have numbered UARTS so only define UPE and even fewer define PE instead of UPE. This adds support for those chips again. Closes: #2137
2014-06-25Allow variants to define an initVariant() function that is called at startup.Matthijs Kooijman
See #2080 and #2139.
2014-06-25Removed patch for old malloc bug (no more useful with updated toolchain)Cristian Maglie
2014-06-25Fixed compilation error when targetting Mega. Error is caused by #2039 and ↵Federico Fissore
this fix is just a workaround
2014-06-25gcc: Adding -w flag to compiler.c.elf.flags in order to avoid printing ISR ↵Federico Fissore
warning http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396
2014-06-25Enabling link-time optimization. See #660Federico Fissore
2014-06-25New common AVR toolchainFederico Fissore
2014-06-19Allow variants to define an initVariant() function that is called at startup.Cristian Maglie
See #2080
2014-06-19Merge branch 'master' into ide-1.5.xCristian Maglie