• Iain Ireland's avatar
    [regexp] Remove function pointer in TextEmitPass · 73da478c
    Iain Ireland authored
    TextEmitPass uses a function pointer to determine which pass to
    call. This function pointer is only assigned inside TextEmitPass, and
    can easily be eliminated by moving the calls to each possible target
    inside the switch statement that assigns the function pointer.
    
    I made this change because SpiderMonkey uses a static analysis pass to
    verify that everything is rooted properly across calls that might GC,
    and that analysis is conservative when calling function pointers. We
    can white-list function pointers that are known to be safe, but the
    code being called through this function pointer is complex enough
    (and the function pointer is unnecessary enough) that it seemed best
    to just remove the function pointer entirely.
    
    R=jgruber@chromium.org
    
    Bug: v8:10303
    Change-Id: I5fbb0df290a2288c4d3db6d43a563385337162ea
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091398
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66672}
    73da478c
regexp-compiler.cc 146 KB