Skip to content
Snippets Groups Projects
  • Nika Layzell's avatar
    b6ea50e3
    Bug 1448426 - Wrap windows.h to avoid problematic define statements, r=froydnj,glandium · b6ea50e3
    Nika Layzell authored
    By default, windows.h exposes a large number of problematic define statements
    which are UpperCamelCase, such as a define from `CreateWindow` to
    `CreateWindow{A,W}`.
    
    As many of these names are generic (e.g. CreateFile, CreateWindow), they can
    mess up Gecko code that may legitimately have its own methods with the same
    names.
    
    The header also defines some traditional SCREAMING_SNAKE_CASE defines which
    can mess up our code by conflicting with local values.
    
    This patch adds a simple code generator which generates wrappers for these
    defines, and uses them to wrap the windows.h wrapper using the `stl_wrappers`
    mechanism, allowing us to use windows.h in more places.
    
    Differential Revision: https://phabricator.services.mozilla.com/D10932
    b6ea50e3
    History
    Bug 1448426 - Wrap windows.h to avoid problematic define statements, r=froydnj,glandium
    Nika Layzell authored
    By default, windows.h exposes a large number of problematic define statements
    which are UpperCamelCase, such as a define from `CreateWindow` to
    `CreateWindow{A,W}`.
    
    As many of these names are generic (e.g. CreateFile, CreateWindow), they can
    mess up Gecko code that may legitimately have its own methods with the same
    names.
    
    The header also defines some traditional SCREAMING_SNAKE_CASE defines which
    can mess up our code by conflicting with local values.
    
    This patch adds a simple code generator which generates wrappers for these
    defines, and uses them to wrap the windows.h wrapper using the `stl_wrappers`
    mechanism, allowing us to use windows.h in more places.
    
    Differential Revision: https://phabricator.services.mozilla.com/D10932