<div dir="ltr"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">* What’s cooking (Miklos)<br>
  + Noel looked at UNO-level weak references, performance → found a different solution for a11y<br>
<br></blockquote><div><br></div><div><div class="gmail_default" style="font-family:tahoma,sans-serif">Our a11y is fundamentally slow because it always builds a parallel object hierarchy of ~everything, UI and document model.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">And because it makes extensive use of weak pointers, and ours are even slower than std::weak_ptr (which is not high performance itself).</div></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Ideally, we should be building the a11y stuff on-demand, but that it just too deep of a change to be achievable.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I'm playing with the idea of saying:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">    Everything inside the soffice binary __must__ use OWeakObject and css::uno::WeakReference to do any weak stuff.<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">and then I can specialise the weak object implementation into two - one fast one for everything inside the process, and a slow one for handling cross-process weak pointers.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div></div>