Comment 32 for bug 1684272

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to heat (master)

Reviewed: https://review.openstack.org/477031
Committed: https://git.openstack.org/cgit/openstack/heat/commit/?id=c889f08ab5279caae3d6fe4e0614fa938fb2c9ff
Submitter: Jenkins
Branch: master

commit c889f08ab5279caae3d6fe4e0614fa938fb2c9ff
Author: Zane Bitter <email address hidden>
Date: Wed Jul 19 17:35:40 2017 -0400

    Optimise the function.dep_attrs() function

    Due to unfortunate copy-pasta, the original implementation of
    function.dep_attrs() iterates over items in a dictionary instead of values.
    Dictionary keys cannot have dependencies - they must be hashable and
    Function objects are not. So for each dictionary key we call dep_attrs()
    recursively 3 times as many times as we need to (for the key/value tuple,
    the key, and the value). For template snippets that are dominated by
    dictionaries, this means it took three times as long and used three times
    as much memory and twice as much stack space as it needed to.

    Change-Id: I13781540483daf88202d221a9f517746eebf0346
    Partial-Bug: #1684272