• Hixie's avatar
    Fix the crash when going to settings after showing the popup menu. · a50b0651
    Hixie authored
    If your constraints are tight when you get laid out, you don't get a
    relayout subtree root.
    
    If you don't have a relayout subtree root, and you get marked dirty,
    you go through layoutWithoutResize() rather than layout(), so we don't
    get a parentUsesSize.
    
    If you're not dirty and your constraints didn't change, layout() skips
    your layout.
    
    So then if your initial layout had parentUsesSize:true, and then you
    got marked dirty directly, you would set your size with
    parentCanUseSize=false, and then later if your parent tried to lay you
    out then read your size, it would crash because your size wasn't set
    up to allow you to get your size.
    
    The fix is to actually remember the last setting of parentUsesSize,
    even in the case of the constraints being tight and you later being
    marked as needing layout directly.
    a50b0651
object.dart 24.6 KB