Wire buffer length improvments.#8398
Merged
earlephilhower merged 2 commits intoesp8266:masterfrom Dec 14, 2021
Merged
Conversation
flaviut
commented
Dec 5, 2021
libraries/Wire/Wire.h
Outdated
Contributor
Author
There was a problem hiding this comment.
I expect this may be a bit controversial. My idea is to use the new I2C_BUFFER_LENGTH functionality as a carrot to convince people to switch to the new define.
Contributor
Author
|
cc @d-a-v |
Collaborator
|
It has to be noted that the resulting flash occupation is decreased with this PR. So for example when one needs an |
Based on paclema/arduino-esp32@375a89e We should have been very careful when #defining things to not use a name that could conflict with the user's own code, so this marks that old define as deprecated. If you opt-into the new behavior, you do not get the old BUFFER_LENGTH constant. As a bonus, changing these uint8_ts to size_t both reduces the code size & improves performance.
I looked over the users of these variables and they should be fine with no additional changes. The existing methods already have an option to use size_t rather than uint8_t. There's a few methods which return int instead of size_t, which isn't great from a portability perspective but will be fine since this only is designed to run on the ESP8266.
7fea6d4 to
733eef3
Compare
Contributor
Author
That's interesting, and not something I expected. I've updated the commit message with this information. |
hasenradball
pushed a commit
to hasenradball/Arduino
that referenced
this pull request
Nov 18, 2024
* Enable I2C_BUFFER_LENGTH definition for Wire lib Based on paclema/arduino-esp32@375a89e We should have been very careful when #defining things to not use a name that could conflict with the user's own code, so this marks that old define as deprecated. If you opt-into the new behavior, you do not get the old BUFFER_LENGTH constant. As a bonus, changing these uint8_ts to size_t both reduces the code size & improves performance. * Increase buffer indexing variable size I looked over the users of these variables and they should be fine with no additional changes. The existing methods already have an option to use size_t rather than uint8_t. There's a few methods which return int instead of size_t, which isn't great from a portability perspective but will be fine since this only is designed to run on the ESP8266.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Enable I2C_BUFFER_LENGTH definition for Wire lib
Based on
paclema/arduino-esp32@375a89e
We should have been very careful when #defining things to not use a name
that could conflict with the user's own code, so this marks that old
define as deprecated.
If you opt-into the new behavior, you do not get the old BUFFER_LENGTH
constant.
Increase buffer indexing variable size
I looked over the users of these variables and they should be fine with
no additional changes. The existing methods already have an option to
use size_t rather than uint8_t.
There's a few methods which return int instead of size_t, which isn't
great from a portability perspective but will be fine since this only is
designed to run on the ESP8266.'
Fixes #8391
Feel free to use this patchset in full or in part.