Skip to content
Snippets Groups Projects
  • Nathan Froyd's avatar
    e3ebda19
    Bug 1223932 - delete guard object uses from the tree; r=jwalden · e3ebda19
    Nathan Froyd authored
    CLOSED TREE
    
    We don't need these macros anymore, for two reasons:
    
    1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
       and friends.
    2. clang now warns for the "temporary that should have been a declaration" case.
    
    The extra requirements on class construction also show up during debug tests
    as performance problems.
    
    This change was automated by using the following sed script:
    
    ```
    # Remove declarations in classes.
    /MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
    /MOZ_GUARD_OBJECT_NOTIFIER_INIT/d
    
    # Remove individual macros, carefully.
    {
      # We don't have to worry about substrings here because the closing
      # parenthesis "anchors" the match.
      s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;
    
      # Remove the longer identifier first.
      s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
    }
    
    # Remove the actual include.
    \@# *include "mozilla/GuardObjects.h"@d
    ```
    
    and running:
    
    ```
    find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
    mach clang-format
    ```
    
    Differential Revision: https://phabricator.services.mozilla.com/D85168
    e3ebda19
    History
    Bug 1223932 - delete guard object uses from the tree; r=jwalden
    Nathan Froyd authored
    CLOSED TREE
    
    We don't need these macros anymore, for two reasons:
    
    1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
       and friends.
    2. clang now warns for the "temporary that should have been a declaration" case.
    
    The extra requirements on class construction also show up during debug tests
    as performance problems.
    
    This change was automated by using the following sed script:
    
    ```
    # Remove declarations in classes.
    /MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
    /MOZ_GUARD_OBJECT_NOTIFIER_INIT/d
    
    # Remove individual macros, carefully.
    {
      # We don't have to worry about substrings here because the closing
      # parenthesis "anchors" the match.
      s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;
    
      # Remove the longer identifier first.
      s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
      s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
    }
    
    # Remove the actual include.
    \@# *include "mozilla/GuardObjects.h"@d
    ```
    
    and running:
    
    ```
    find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
    mach clang-format
    ```
    
    Differential Revision: https://phabricator.services.mozilla.com/D85168
SVGPaintServerFrame.h 2.54 KiB