-
Notifications
You must be signed in to change notification settings - Fork 571
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce a PathBuilder #850
base: main
Are you sure you want to change the base?
Commits on Sep 18, 2017
-
HV-1480 Add a hv-6.0 entry to be able to compare the latest stable with
our current snapshot
Configuration menu - View commit details
-
Copy full SHA for f970b29 - Browse repository at this point
Copy the full SHA f970b29View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27f566a - Browse repository at this point
Copy the full SHA 27f566aView commit details -
HV-1480 Avoid removing and adding element to the node list
We can directly set the element in the list. It avoids some list resizing.
Configuration menu - View commit details
-
Copy full SHA for d3672d3 - Browse repository at this point
Copy the full SHA d3672d3View commit details -
Configuration menu - View commit details
-
Copy full SHA for e3b444e - Browse repository at this point
Copy the full SHA e3b444eView commit details -
HV-1480 Avoid initializing lists and maps in the common case where we
only have the default group Also optimize a bit the advanced case with groups.
Configuration menu - View commit details
-
Copy full SHA for 5398159 - Browse repository at this point
Copy the full SHA 5398159View commit details -
HV-1480 Avoid creating a list in the common case when we only have the
default violation Also optimize a bit the concatenation of the default violation and the custom ones to avoid creating a list too small and resize it each time.
Configuration menu - View commit details
-
Copy full SHA for 780af71 - Browse repository at this point
Copy the full SHA 780af71View commit details -
HV-1480 Avoid computing the hashCode if not necessary
A lot of NodeImpls are created during the build of the path and some of them are simply discarded as they are "modified" (NodeImpl are immutable so we create a new) further away. Thus we better avoid building the hashCode each time.
Configuration menu - View commit details
-
Copy full SHA for e76f701 - Browse repository at this point
Copy the full SHA e76f701View commit details -
HV-1480 Don't take into account the parent in hashCode and equals
Otherwise, we "compare" the whole path several times while comparing a path.
Configuration menu - View commit details
-
Copy full SHA for c11fdeb - Browse repository at this point
Copy the full SHA c11fdebView commit details -
HV-1480 Implement a copy on write strategy for the node list
It avoids copying the list when not strictly necessary
Configuration menu - View commit details
-
Copy full SHA for ed8f3b5 - Browse repository at this point
Copy the full SHA ed8f3b5View commit details -
HV-1480 Centralize the processed works in one single set
It avoids a lot of initialization/resizing and in the end it's more efficient.
Configuration menu - View commit details
-
Copy full SHA for 7c00b44 - Browse repository at this point
Copy the full SHA 7c00b44View commit details -
HV-1480 Setting the key or the index already makes the node iterable
So we don't need to do it twice. Note that this change uncovers the fact that in ConstraintValidatorContext, calling atKey() or atIndex() makes the node iterable. It was already the case before and I think it's acceptable. It brings its own performance improvements as it avoids initializing 1 NodeImpl and creating 1 copy of the Path.
Configuration menu - View commit details
-
Copy full SHA for f39e179 - Browse repository at this point
Copy the full SHA f39e179View commit details -
HV-1480 We expect at least one node in the path so let's initialize the
list with one element It doesn't seem necessary to consider more elements as the list will be copied when new nodes will be added.
Configuration menu - View commit details
-
Copy full SHA for 2e66bec - Browse repository at this point
Copy the full SHA 2e66becView commit details -
HV-1480 Even if not strictly necessary, the leaf node should be
correctly set in all constructors
Configuration menu - View commit details
-
Copy full SHA for 16c19e5 - Browse repository at this point
Copy the full SHA 16c19e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1acf669 - Browse repository at this point
Copy the full SHA 1acf669View commit details -
Configuration menu - View commit details
-
Copy full SHA for 324b56e - Browse repository at this point
Copy the full SHA 324b56eView commit details -
Configuration menu - View commit details
-
Copy full SHA for b82169c - Browse repository at this point
Copy the full SHA b82169cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d2ea4b8 - Browse repository at this point
Copy the full SHA d2ea4b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e0d825 - Browse repository at this point
Copy the full SHA 0e0d825View commit details -
HV-1480 Only set the property value if required
Only property and container node exposes it to users.
Configuration menu - View commit details
-
Copy full SHA for 3b79cdd - Browse repository at this point
Copy the full SHA 3b79cddView commit details -
Configuration menu - View commit details
-
Copy full SHA for bf7b5c0 - Browse repository at this point
Copy the full SHA bf7b5c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for da77077 - Browse repository at this point
Copy the full SHA da77077View commit details