From 8b13206e655cd9c1123d842cab1fdd0afd6edc8b Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Wed, 7 Sep 2011 18:41:05 -0400 Subject: [PATCH] Making Print::write(char *) non-virtual. http://code.google.com/p/arduino/issues/detail?id=607 --- cores/arduino/Client.h | 1 - cores/arduino/Print.cpp | 10 ---------- cores/arduino/Print.h | 2 +- cores/arduino/Server.h | 2 +- cores/arduino/Udp.h | 2 -- 5 files changed, 2 insertions(+), 15 deletions(-) diff --git a/cores/arduino/Client.h b/cores/arduino/Client.h index ed9e9b4..ea13483 100644 --- a/cores/arduino/Client.h +++ b/cores/arduino/Client.h @@ -10,7 +10,6 @@ public: virtual int connect(IPAddress ip, uint16_t port) =0; virtual int connect(const char *host, uint16_t port) =0; virtual size_t write(uint8_t) =0; - virtual size_t write(const char *str) =0; virtual size_t write(const uint8_t *buf, size_t size) =0; virtual int available() = 0; virtual int read() = 0; diff --git a/cores/arduino/Print.cpp b/cores/arduino/Print.cpp index 8190d4f..500de8c 100755 --- a/cores/arduino/Print.cpp +++ b/cores/arduino/Print.cpp @@ -29,16 +29,6 @@ // Public Methods ////////////////////////////////////////////////////////////// -/* default implementation: may be overridden */ -size_t Print::write(const char *str) -{ - size_t n = 0; - while (*str) { - n += write(*str++); - } - return n; -} - /* default implementation: may be overridden */ size_t Print::write(const uint8_t *buffer, size_t size) { diff --git a/cores/arduino/Print.h b/cores/arduino/Print.h index 8530b03..1af6b72 100755 --- a/cores/arduino/Print.h +++ b/cores/arduino/Print.h @@ -46,7 +46,7 @@ class Print void clearWriteError() { setWriteError(0); } virtual size_t write(uint8_t) = 0; - virtual size_t write(const char *str); + size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); } virtual size_t write(const uint8_t *buffer, size_t size); size_t print(const __FlashStringHelper *); diff --git a/cores/arduino/Server.h b/cores/arduino/Server.h index edab726..9674c76 100644 --- a/cores/arduino/Server.h +++ b/cores/arduino/Server.h @@ -1,7 +1,7 @@ #ifndef server_h #define server_h -class Server { +class Server : public Print { public: virtual void begin() =0; }; diff --git a/cores/arduino/Udp.h b/cores/arduino/Udp.h index 1fb9cd3..dc5644b 100644 --- a/cores/arduino/Udp.h +++ b/cores/arduino/Udp.h @@ -57,8 +57,6 @@ public: virtual int endPacket() =0; // Write a single byte into the packet virtual size_t write(uint8_t) =0; - // Write a string of characters into the packet - virtual size_t write(const char *str) =0; // Write size bytes from buffer into the packet virtual size_t write(const uint8_t *buffer, size_t size) =0;