pylibfdt/libfdt.i: fix backwards compatibility of return values #160
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.
When our Python functions wrap
fdt_getprop()
they return a list containing[*data, length]
.In SWIG v4.2 and earlier SWIG would discard
*data
if it is NULL/None. Causing the return value to just belength
.But starting in SWIG v4.3 it no longer discards
*data
. So the return value is now[None, length]
.Handle this compatibility issue in libfdt.i by checking if the return value looks like the older 4.2 return value, and casting it to the newer style.
See swig/swig#2907
Fixes #159