Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit afd713e

Browse files
committed
another missing change
1 parent 03a9b2d commit afd713e

File tree

6 files changed

+69
-54
lines changed

6 files changed

+69
-54
lines changed

‎cores/esp8266/HardwareSerial.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,14 @@ class HardwareSerial: public Stream
136136
return uart_peek_char(_uart);
137137
}
138138

139-
virtualbool hasPeekBufferAPI () const override
139+
bool hasPeekBufferAPI () const override
140140
{
141141
return true;
142142
}
143143

144144
// return a pointer to available data buffer (size = available())
145145
// semantic forbids any kind of read() before calling peekConsume()
146-
const char* peekBuffer () override
146+
const void* peekBuffer () override
147147
{
148148
return uart_peek_buffer(_uart);
149149
}

‎cores/esp8266/Print.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class Print {
5656
size_t write(const char *str) {
5757
if(str == NULL)
5858
return 0;
59-
return write((const uint8_t *) str, strlen_P(str));
59+
return write((const uint8_t *) str, strlen(str));
6060
}
6161
virtual size_t write(const uint8_t *buffer, size_t size);
6262
size_t write(const char *buffer, size_t size) {

‎cores/esp8266/Stream.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ class Stream: public Print {
134134
// semantic forbids any kind of ::read()
135135
// - after calling peekBuffer()
136136
// - and before calling peekConsume()
137-
virtual const char* peekBuffer () { return nullptr; }
137+
virtual const void* peekBuffer () { return nullptr; }
138138

139139
// consumes bytes after peekBuffer() use
140140
// (then ::read() is allowed)

‎cores/esp8266/StreamDev.h‎

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -34,64 +34,64 @@ class StreamNull: public Stream
3434
public:
3535

3636
// Print
37-
virtualsize_t write(uint8_t) override
37+
size_t write(uint8_t) override
3838
{
3939
return 1;
4040
}
4141

42-
virtualsize_t write(const uint8_t* buffer, size_t size) override
42+
size_t write(const uint8_t* buffer, size_t size) override
4343
{
4444
(void)buffer;
4545
(void)size;
4646
return size;
4747
}
4848

49-
virtualint availableForWrite() override
49+
int availableForWrite() override
5050
{
5151
return std::numeric_limits<int16_t>::max();
5252
}
5353

5454
// Stream
55-
virtualint available() override
55+
int available() override
5656
{
5757
return 0;
5858
}
5959

60-
virtualint read() override
60+
int read() override
6161
{
6262
return -1;
6363
}
6464

65-
virtualint peek() override
65+
int peek() override
6666
{
6767
return -1;
6868
}
6969

70-
virtualsize_t readBytes(char* buffer, size_t len) override
70+
size_t readBytes(char* buffer, size_t len) override
7171
{
7272
(void)buffer;
7373
(void)len;
7474
return 0;
7575
}
7676

77-
virtualint read(uint8_t* buffer, size_t len) override
77+
int read(uint8_t* buffer, size_t len) override
7878
{
7979
(void)buffer;
8080
(void)len;
8181
return 0;
8282
}
8383

84-
virtualbool outputCanTimeout() override
84+
bool outputCanTimeout() override
8585
{
8686
return false;
8787
}
8888

89-
virtualbool inputCanTimeout() override
89+
bool inputCanTimeout() override
9090
{
9191
return false;
9292
}
9393

94-
virtualssize_t streamRemaining() override
94+
ssize_t streamRemaining() override
9595
{
9696
return 0;
9797
}
@@ -113,34 +113,34 @@ class StreamZero: public StreamNull
113113
StreamZero(char zero = 0): _zero(zero) { }
114114

115115
// Stream
116-
virtualint available() override
116+
int available() override
117117
{
118118
return std::numeric_limits<int16_t>::max();
119119
}
120120

121-
virtualint read() override
121+
int read() override
122122
{
123123
return _zero;
124124
}
125125

126-
virtualint peek() override
126+
int peek() override
127127
{
128128
return _zero;
129129
}
130130

131-
virtualsize_t readBytes(char* buffer, size_t len) override
131+
size_t readBytes(char* buffer, size_t len) override
132132
{
133133
memset(buffer, _zero, len);
134134
return len;
135135
}
136136

137-
virtualint read(uint8_t* buffer, size_t len) override
137+
int read(uint8_t* buffer, size_t len) override
138138
{
139139
memset((char*)buffer, _zero, len);
140140
return len;
141141
}
142142

143-
virtualssize_t streamRemaining() override
143+
ssize_t streamRemaining() override
144144
{
145145
return std::numeric_limits<int16_t>::max();
146146
}
@@ -160,7 +160,11 @@ class StreamConstPtr: public StreamNull
160160
size_t _peekPointer = 0;
161161

162162
public:
163-
StreamConstPtr(const String&& string) = delete; // prevents passing String temporary, use ctor(buffer,size) if you know what you are doing
163+
// prevents passing String temporary, use ctor(buffer,size) if you know what you are doing
164+
StreamConstPtr(const String&&) = delete;
165+
StreamConstPtr(String&&) = delete;
166+
167+
// reference arbitrary pointer
164168
StreamConstPtr(const String& string): _buffer(string.c_str()), _size(string.length()), _byteAddressable(true) { }
165169
StreamConstPtr(const char* buffer, size_t size): _buffer(buffer), _size(size), _byteAddressable(__byteAddressable(buffer)) { }
166170
StreamConstPtr(const uint8_t* buffer, size_t size): _buffer((const char*)buffer), _size(size), _byteAddressable(__byteAddressable(buffer)) { }
@@ -173,24 +177,24 @@ class StreamConstPtr: public StreamNull
173177
}
174178

175179
// Stream
176-
virtualint available() override
180+
int available() override
177181
{
178182
return peekAvailable();
179183
}
180184

181-
virtualint read() override
185+
int read() override
182186
{
183187
// valid with dram, iram and flash
184188
return _peekPointer < _size ? pgm_read_byte(&_buffer[_peekPointer++]) : -1;
185189
}
186190

187-
virtualint peek() override
191+
int peek() override
188192
{
189193
// valid with dram, iram and flash
190194
return _peekPointer < _size ? pgm_read_byte(&_buffer[_peekPointer]) : -1;
191195
}
192196

193-
virtualsize_t readBytes(char* buffer, size_t len) override
197+
size_t readBytes(char* buffer, size_t len) override
194198
{
195199
if (_peekPointer >= _size)
196200
{
@@ -202,33 +206,33 @@ class StreamConstPtr: public StreamNull
202206
return cpylen;
203207
}
204208

205-
virtualint read(uint8_t* buffer, size_t len) override
209+
int read(uint8_t* buffer, size_t len) override
206210
{
207211
return readBytes((char*)buffer, len);
208212
}
209213

210-
virtualssize_t streamRemaining() override
214+
ssize_t streamRemaining() override
211215
{
212216
return _size;
213217
}
214218

215219
// peekBuffer
216-
virtualbool hasPeekBufferAPI() const override
220+
bool hasPeekBufferAPI() const override
217221
{
218-
return _byteAddressable;
222+
return true;
219223
}
220224

221-
virtualsize_t peekAvailable() override
225+
size_t peekAvailable() override
222226
{
223227
return _peekPointer < _size ? _size - _peekPointer : 0;
224228
}
225229

226-
virtualconst char* peekBuffer() override
230+
const void* peekBuffer() override
227231
{
228232
return _peekPointer < _size ? _buffer + _peekPointer : nullptr;
229233
}
230234

231-
virtualvoid peekConsume(size_t consume) override
235+
void peekConsume(size_t consume) override
232236
{
233237
_peekPointer += consume;
234238
}

‎cores/esp8266/StreamSend.cpp‎

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,17 @@
2222
#include <Arduino.h>
2323
#include <StreamDev.h>
2424

25+
namespace {
26+
27+
// 'last' is memchr result, always in advance of current
28+
size_t last_consume(size_t previous, const void* last, const void* current)
29+
{
30+
return std::min(previous, static_cast<size_t>(
31+
reinterpret_cast<intptr_t>(last) - reinterpret_cast<intptr_t>(current)));
32+
}
33+
34+
} // namespace
35+
2536
size_t Stream::sendGeneric(Stream* to, const ssize_t len, const int readUntilChar,
2637
const esp8266::polledTimeout::oneShotFastMs::timeType timeoutMs)
2738
{
@@ -132,18 +143,18 @@ Stream::SendGenericPeekBuffer(Print* to, const ssize_t len, const int readUntilC
132143
}
133144
if (w)
134145
{
135-
const char* directbuf = peekBuffer();
146+
const auto* directbuf = peekBuffer();
136147
bool foundChar = false;
137148
if (readUntilChar >= 0)
138149
{
139-
const char* last = (constchar*)memchr(directbuf, readUntilChar, w);
150+
const auto* last = memchr(directbuf, readUntilChar, w);
140151
if (last)
141152
{
142-
w = std::min((size_t)(last - directbuf), w);
153+
w = last_consume(w, last, directbuf);
143154
foundChar = true;
144155
}
145156
}
146-
if (w && ((w = to->write(directbuf, w))))
157+
if (w && ((w = to->write((constuint8_t*)directbuf, w))))
147158
{
148159
peekConsume(w);
149160
written += w;

‎cores/esp8266/StreamString.h‎

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,18 @@ class S2Stream: public Stream
3939

4040
S2Stream(String* string, int peekPointer = -1) : string(string), peekPointer(peekPointer) { }
4141

42-
virtual int available() override
42+
// Stream
43+
int available() override
4344
{
4445
return string->length();
4546
}
4647

47-
virtualint availableForWrite() override
48+
int availableForWrite() override
4849
{
4950
return std::numeric_limits<int16_t>::max();
5051
}
5152

52-
virtualint read() override
53+
int read() override
5354
{
5455
if (peekPointer < 0)
5556
{
@@ -71,12 +72,12 @@ class S2Stream: public Stream
7172
return -1;
7273
}
7374

74-
virtualsize_t write(uint8_t data) override
75+
size_t write(uint8_t data) override
7576
{
7677
return string->concat((char)data);
7778
}
7879

79-
virtualint read(uint8_t* buffer, size_t len) override
80+
int read(uint8_t* buffer, size_t len) override
8081
{
8182
if (peekPointer < 0)
8283
{
@@ -99,12 +100,12 @@ class S2Stream: public Stream
99100
return l;
100101
}
101102

102-
virtualsize_t write(const uint8_t* buffer, size_t len) override
103+
size_t write(const uint8_t* buffer, size_t len) override
103104
{
104105
return string->concat((const char*)buffer, len) ? len : 0;
105106
}
106107

107-
virtualint peek() override
108+
int peek() override
108109
{
109110
if (peekPointer < 0)
110111
{
@@ -121,29 +122,28 @@ class S2Stream: public Stream
121122
return -1;
122123
}
123124

124-
virtualvoid flush() override
125+
void flush() override
125126
{
126127
// nothing to do
127128
}
128129

129-
virtualbool inputCanTimeout() override
130+
bool inputCanTimeout() override
130131
{
131132
return false;
132133
}
133134

134-
virtualbool outputCanTimeout() override
135+
bool outputCanTimeout() override
135136
{
136137
return false;
137138
}
138139

139-
//// Stream's peekBufferAPI
140-
141-
virtual bool hasPeekBufferAPI() const override
140+
// peekBufferAPI
141+
bool hasPeekBufferAPI() const override
142142
{
143143
return true;
144144
}
145145

146-
virtualsize_t peekAvailable()
146+
size_t peekAvailable()
147147
{
148148
if (peekPointer < 0)
149149
{
@@ -152,7 +152,7 @@ class S2Stream: public Stream
152152
return string->length() - peekPointer;
153153
}
154154

155-
virtualconst char* peekBuffer() override
155+
const void* peekBuffer() override
156156
{
157157
if (peekPointer < 0)
158158
{
@@ -165,7 +165,7 @@ class S2Stream: public Stream
165165
return nullptr;
166166
}
167167

168-
virtualvoid peekConsume(size_t consume) override
168+
void peekConsume(size_t consume) override
169169
{
170170
if (peekPointer < 0)
171171
{
@@ -179,7 +179,7 @@ class S2Stream: public Stream
179179
}
180180
}
181181

182-
virtualssize_t streamRemaining() override
182+
ssize_t streamRemaining() override
183183
{
184184
return peekPointer < 0 ? string->length() : string->length() - peekPointer;
185185
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /