• Show log

    Commit

  • Hash : 8f38ba4d
    Author : Jessica Clarke
    Date : 2021-07-29T18:02:47

    Fix casts that should be using uintptr_t
    
    This is needed to support CHERI, and thus Arm's experimental Morello
    prototype, where pointers are implemented using unforgeable capabilities
    that include bounds and permissions metadata to provide fine-grained
    spatial and referential memory safety, as well as revocation by sweeping
    memory to provide heap temporal memory safety.
    
    On most systems (anything with a flat memory hierarchy rather than using
    segment-based addressing), size_t and uintptr_t are the same type.
    However, on CHERI, size_t is just an integer offset, whereas uintptr_t
    is still a capability as described above. Casting a pointer to size_t
    will strip the metadata and validity tag, and casting from size_t to a
    pointer will result in a null-derived capability whose validity tag is
    not set, and thus cannot be dereferenced without faulting.
    
    The audio and cursor casts were harmless as they intend to stuff an
    integer into a pointer, but using uintptr_t is the idiomatic way to do
    that and silences our compiler warnings (which our build tool makes
    fatal by default as they often indicate real problems). The iconv and
    egl casts were true positives as SDL_iconv_t and iconv_t are pointer
    types, as is NativeDisplayType on most OSes, so this would have trapped
    at run time when using the round-tripped pointers. The gles2 casts were
    also harmless; the OpenGL API defines this argument to be a pointer type
    (and uses the argument name "pointer"), but it in fact represents an
    integer offset, so like audio and cursor the additional idiomatic cast
    is needed to silence the warning.
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/SDL.git
    Git SSH git@git.kmx.io:kc3-lang/SDL.git
    Public access ? public
    Description

    Fork of https://github.com/libsdl-org/SDL

    Users
    thodg_w kc3_lang_org thodg_l thodg_m www_kmx_io thodg
    Tags

  • README.md

  • Simple DirectMedia Layer (SDL) Version 2.0

    https://www.libsdl.org/

    Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valveā€™s award winning catalog and many Humble Bundle games.

    More extensive documentation is available in the docs directory, starting with README.md

    Enjoy!

    Sam Lantinga (slouken@libsdl.org)