stuartsierra/dependency

Leaking memory?

lgrapenthin opened this issue · 2 comments

I wonder whether this is intended and if so I'd be interested in knowing why

(-> (dep/graph)
    (dep/depend :a :b)
    (dep/remove-edge :a :b))

;-> {:dependencies {:a #{}}, :dependents {:b #{}}}

(-> (dep/graph)
    (dep/depend :a :b)
    (dep/remove-all :a))

;-> {:dependencies {}, :dependents {:b #{}}}

The only way to clean the graph is to call remove-all on both nodes end egdes which seems counter intuitive

(-> (dep/graph)
    (dep/depend :a :b)
    (dep/remove-all :a)
    (dep/remove-all :b))

;-> {:dependencies {}, :dependents {}}

Removing non existing edges also seems to implicitly add nil under them

(-> (dep/graph)
    (dep/remove-edge :a :b))

;-> {:dependencies {:a nil}, :dependents {:b nil}}

Thank you for the report.

This Git repository is a copy of clojure.tools.namespace.dependency from tools.namespace and is covered by the clojure-contrib process. Please file an issue at http://dev.clojure.org/jira/browse/TNS