On Wed, Feb 11, 2015 at 12:30 PM, Francisco Jerez <curroje...@riseup.net>
wrote:

> Matt Turner <matts...@gmail.com> writes:
>
> > On Wed, Feb 11, 2015 at 9:16 AM, Francisco Jerez <curroje...@riseup.net>
> wrote:
> >> Matt Turner <matts...@gmail.com> writes:
> >>
> >>> On Wed, Feb 11, 2015 at 6:37 AM, Juha-Pekka Heikkila
> >>> <juhapekka.heikk...@gmail.com> wrote:
> >>>> There is no error path available thus instead of giving
> >>>> realloc possibility to fail use new which will never
> >>>> return null pointer and throws bad_alloc on failure.
> >>>
> >>> The problem was that we weren't checking if realloc failed.
> >>>
> >>> Why is the solution to change from malloc/free to new/delete?
> >>
> >> The new operator is guaranteed not to return NULL by the C++ standard.
> >> Aside from that Juha-Pekka's code seems more idiomatic to me than
> >> calling realloc() from a C++ source file, but that might just be a
> >> matter of taste.
> >
> > But new will throw an exception if it fails, right? Presumably under
> > the same conditions as malloc/realloc returning NULL (i.e., being out
> > of address space).
>
> Yeah, so this patch doesn't really handle the out of memory condition.
> According to Juha-Pekka it silences a Klocwork warning and IMHO it
> improves code-style slightly.  But, sure, if it actually happens it's
> just trading one kind of failure for another.
>

The fact of the matter is that we don't handle exceptions either so we get
a crash either way.  It's just the difference between a segfault or an
unhandled exception.  Also, for whatever it's worth, in the case where
realloc can expand in-place, the realloc call will be faster because we
won't have to do a memcpy.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to