|
/* idea with these here it to make them loop invariant for multi updates, and thus be a bit faster for that case */
/* NOTE: when yield() is added herein, these must be refreshed after each call to yield! */
NamespaceDetails *d = nsdetails(ns); // can be null if an upsert...
NamespaceDetailsTransient *nsdt = &NamespaceDetailsTransient::get_w(ns);
/* end note */
If we yield and if, for example, somebody calls NamespaceDetailsTransient::clearForPrefix() on a collection with a name that is a prefix of our collection's name, I think nsdt can point to freed memory even though we recover successfully from the yield.
|