X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fbuffer.cpp;h=240fcd72754b67babe7a28b9ee2fe42a80f1fe4b;hp=811b3e41d7cbfb9ed16e613b29a7c28674d07659;hb=e70662d7812464159f2e47f4bebb69d88f89ae93;hpb=160e9eea29bd10034733d59507fa1bcca36be401 diff --git a/source/core/buffer.cpp b/source/core/buffer.cpp index 811b3e41..240fcd72 100644 --- a/source/core/buffer.cpp +++ b/source/core/buffer.cpp @@ -8,11 +8,7 @@ using namespace std; namespace Msp { namespace GL { -Buffer::Buffer(): - size(0) -{ } - -void Buffer::storage(unsigned sz) +void Buffer::storage(size_t sz) { if(size>0) { @@ -33,15 +29,17 @@ void Buffer::data(const void *d) return sub_data(0, size, d); } -void Buffer::sub_data(unsigned off, unsigned sz, const void *d) +void Buffer::sub_data(size_t off, size_t sz, const void *d) { if(size==0) throw invalid_operation("Buffer::sub_data"); + if(off>size || off+sz>size) + throw out_of_range("Buffer::sub_data"); BufferBackend::sub_data(off, sz, d); } -void Buffer::require_size(unsigned req_sz) const +void Buffer::require_size(size_t req_sz) const { if(size