On Jun 3, 2011, at 7:50 AM, Darin Adler wrote: > 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.
Are you referring to the fact that from a const Node* can be used to get non-const pointers to the Node's neighbors in the DOM, or something else? Regards, Maciej _______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

