On Mon, Sep 5, 2016 at 10:13 AM, Darin Adler <da...@apple.com> wrote: > Hi folks. > > WebKit has some critical functions that involve asking an object to give up > ownership of something so the caller can take ownership. > > In the C++ standard library itself, this is called move, as in std::move. > > In WebKit smart pointers, we call this operation release, as in > RefPtr::releaseNonNull and String::releaseImpl. > > In WebKit collections, we call this operation take, as in HashMap::take and > ExceptionOr::takeReturnValue. > > The release vs. take terminology is distracting to my eyes. The verb “take" > states what the caller wishes to do, and the verb “release” states what the > caller wants the collection or smart pointer to do. My first thought was be > to rename the take functions to use the word release instead, but I fear it > might make them harder to understand instead of easier and clearly it would > make them longer.
I agree the verb "take" is not semantically sound here. How about HashMap::receiveReleased / ExceptionOr::receiveReleased? Or simply HashMap::released / ExceptionOr::takeReleased? Even HashMap::receive / ExceptionOr::receiveReturnValue might work better because "receive" is more a passive form of accepting the ownership of something. - R. Niwa _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev