ISecUser and ISecResource property iterator conformance
Description
introduced methods to ISecUser and ISecResource in order to access embedded property iterators from concrete implementations. The implementations of these methods do not conform to conventional iterator usage.
CLdapSecUser always returns NULL, because it doesn't manage properties. Other implementations can return NULL, because embedded properties are lazily allocated and iterators are dependent upon the properties they iterate.
Conventional usage assumes returned iterators will not be NULL. All implementations need to be changed to not return NULL.
Conclusion
None
Activity
Show:
Tim Klemm July 27, 2018 at 2:26 PM
This affects CSecureUser, CSecurityResource, CLdapSecUser, and CLdapSecResource.
CLdapSecUser does not manage properties. A static properties instance will be created, from which an iterator will be returned for all iterator requests.
Lazy properties allocation will be removed from the remaining affected classes, providing an iterator source for each iterator request. There is a cost associated with allocating objects that might be unused, but that cost may be countered by the benefit of code simplification. expressed a preference for code simplification, and I'm inclined to agree.
Rodrigo Pastrana July 27, 2018 at 1:37 PM
this should be 7.0.0. Tim has the code in place, performing tests today and should have PR issued today.
Fixed
Pinned fields
Click on the next to a field label to start pinning.
introduced methods to ISecUser and ISecResource in order to access embedded property iterators from concrete implementations. The implementations of these methods do not conform to conventional iterator usage.
CLdapSecUser always returns NULL, because it doesn't manage properties. Other implementations can return NULL, because embedded properties are lazily allocated and iterators are dependent upon the properties they iterate.
Conventional usage assumes returned iterators will not be NULL. All implementations need to be changed to not return NULL.