> On Sep 5, 2016, at 2:35 PM, Ryosuke Niwa <rn...@webkit.org> wrote: > > On Mon, Sep 5, 2016 at 10:13 AM, Darin Adler <da...@apple.com > <mailto: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.
I don't think that HashMap::receiveReleased() fits with Subject::verbPhrase(). In HashMap::take(), the HashMap is releasing ownership of a value. So, it is releasing it. It's definitely not receiving it. -Filip
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev