• Jason Rhinelander's avatar
    Fix past-the-end dereference in values_and_holders · a403d0e6
    Jason Rhinelander authored
    The value and holder iterator code had a past-the-end iterator
    dereference.  While of course invalid, the dereference didn't actually
    cause any problems (which is why it wasn't caught before) because the
    dereferenced value is never actually used and `vector` implementations
    appear to allow dereferencing the past-the-end iterator.  Under a MSVC
    debug build, however, it fails a debug assertion and aborts.
    
    This amends the iterator to just store and use a pointer to the vector
    (rather than adding a second past-the-end iterator member), checking the
    type index against the type vector size.
    a403d0e6
cast.h 83 KB