On Jun 2, 2011, at 1:32 AM, Ryosuke Niwa wrote: > All functions passed to enclosingNodeOfType in htmlediting.cpp are such > clients: > > Node* enclosingNodeOfType(const Position& p, bool (*nodeIsOfType)(const > Node*), EditingBoundaryCrossingRule rule) > > It takes a boolean function that takes const pointer to a DOM node. It is > critical that nodeIsOfType does not modify DOM
This points to a place where const does not work well. Having the single node pointer that is the argument to the function be const does not express “must not modify DOM”. If there was some way to express “must not modify DOM” that would be great, but that just expresses “must not modify this DOM node”. It happens that the predicate takes a node argument. You could imagine a similar function that takes a Range. You can see that that’s an even clearer. There’s no way to pass a range to a function and also say “must not modify DOM”. I don’t think const is a good way to express this. -- Darin _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev