You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Updates some some boxing calls to use the newer <Number>.valueOf methods instead of new <Number>
Updates calls to return sooner. i.e
this.put(value);
returnthis;
changes to:
returnthis.put(value);
Risks
Low. Changes are either documentation only, or semantic to reduce stack by a single dword by reusing the return values. Changes to API methods are not expected to affect existing applications.
Changes to the API?
Adds new API methods:
JSONArray put(float) throws JSONException
JSONArray put(int, float) throws JSONException
Modifies behavior of existing API methods
JSONArray put(double) : Removes validity check (because put(Object) does)
JSONArray put(Object): Tests validity before assignment
JSONArray put(int, Object): tests validity if in-list, add instead of put NULL after end of current list.
JSONObject(Map): Throws NPE if key is null
Will this require a new release?
No
Should the documentation be updated?
This PR updates the documentation. If some is missed, please note it in the comments or Code Review sections.
Does it break the unit tests?
No. New unit tests were added to reinforce the API
Was any code refactored in this commit?
Yes. As mentioned above some boxing calls were updated to the newer java5+ <Number>.valueOf instead of using the constructors as recommended by java code practices. Also, some returns were optimized which should not affect execution beyond decreasing stack size by a single dword.
A bit late here, but I would consider throwing an exception for an input that used to be accepted a breaking API change. In my company's codebase we had some tests that verified this behavior that were broken as a result, and a currently unknown amount of code that could actually be depending on this behavior.
Obviously this ship has already sailed (and rejecting null keys makes much more sense), but can we at least point out the breaking change in the release history documentation? Would be very useful as a heads-up for anyone trying to upgrade from an old version.
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.
What problem does this code solve?
<Number>.valueOf
methods instead ofnew <Number>
changes to:
Risks
Low. Changes are either documentation only, or semantic to reduce stack by a single dword by reusing the return values. Changes to API methods are not expected to affect existing applications.
Changes to the API?
JSONArray put(float) throws JSONException
JSONArray put(int, float) throws JSONException
JSONArray put(double) : Removes validity check (because put(Object) does)
JSONArray put(Object): Tests validity before assignment
JSONArray put(int, Object): tests validity if in-list, add instead of put NULL after end of current list.
JSONObject(Map): Throws NPE if key is null
Will this require a new release?
No
Should the documentation be updated?
This PR updates the documentation. If some is missed, please note it in the comments or Code Review sections.
Does it break the unit tests?
No. New unit tests were added to reinforce the API
Was any code refactored in this commit?
Yes. As mentioned above some boxing calls were updated to the newer java5+
<Number>.valueOf
instead of using the constructors as recommended by java code practices. Also, some returns were optimized which should not affect execution beyond decreasing stack size by a single dword.Review status
ACCEPTED