Skip to content
  • Neil Roberts's avatar
    Add -Wmissing-declarations to maintainer flags and fix problems · 18563008
    Neil Roberts authored
    
    
    This option to GCC makes it give a warning whenever a global function
    is defined without a declaration. This should catch cases were we've
    defined a function but forgot to put it in a header. In that case it
    is either only used within one file so we should make it static or we
    should declare it in a header.
    
    The following changes where made to fix problems:
    
    • Some functions were made static
    
    • cogl-path.h (the one containing the 1.0 API) was split into two
      files, one defining the functions and one defining the enums so that
      cogl-path.c can include the enum and function declarations from the
      2.0 API as well as the function declarations from the 1.0 API.
    
    • cogl2-clip-state has been removed. This only had one experimental
      function called cogl_clip_push_from_path but as this is unstable we
      might as well remove it favour of the equivalent cogl_framebuffer_*
      API.
    
    • The GLX, SDL and WGL winsys's now have a private header to define
      their get_vtable function instead of directly declaring in the C
      file where it is called.
    
    • All places that were calling COGL_OBJECT_DEFINE need to have the
      cogl_is_whatever function declared so these have been added either
      as a public function or in a private header.
    
    • Some files that were not including the header containing their
      function declarations have been fixed to do so.
    
    • Any unused error quark functions have been removed. If we later want
      them we should add them back one by one and add a declaration for
      them in a header.
    
    • _cogl_is_framebuffer has been renamed to cogl_is_framebuffer and
      made a public function with a declaration in cogl-framebuffer.h
    
    • Similarly for CoglOnscreen.
    
    • cogl_vdraw_indexed_attributes is called
      cogl_framebuffer_vdraw_indexed_attributes in the header. The
      definition has been changed to match the header.
    
    • cogl_index_buffer_allocate has been removed. This had no declaration
      and I'm not sure what it's supposed to do.
    
    • CoglJournal has been changed to use the internal CoglObject macro so
      that it won't define an exported cogl_is_journal symbol.
    
    • The _cogl_blah_pointer_from_handle functions have been removed.
      CoglHandle isn't used much anymore anyway and in the few places
      where it is used I think it's safe to just use the implicit cast
      from void* to the right type.
    
    • The test-utils.h header for the conformance tests explicitly
      disables the -Wmissing-declaration option using a pragma because all
      of the tests declare their main function without a header. Any
      mistakes relating to missing declarations aren't really important
      for the tests.
    
    • cogl_quaternion_init_from_quaternion and init_from_matrix have been
      given declarations in cogl-quaternion.h
    
    Reviewed-by: default avatarRobert Bragg <robert@linux.intel.com>
    18563008