[v2 PATCH] d3dx9_36: Stop crash when displaying effect errors
Matteo Bruni
matteo.mystral at gmail.com
Tue Jun 28 11:58:50 CDT 2016
2016-06-22 13:10 GMT+02:00 Alistair Leslie-Hughes <leslie_alistair at hotmail.com>:
> if (temp_errors)
> - TRACE("%s\n", (char *)ID3D10Blob_GetBufferPointer(temp_errors));
> + {
> + const char *p = ID3D10Blob_GetBufferPointer(temp_errors);
> + SIZE_T size = ID3D10Blob_GetBufferSize(temp_errors);
> + const char *end = p + size;
> + const char *line = p;
> +
> + while (p != end)
> + {
> + if (*p == '\n')
> + {
> + UINT len = p - line;
> + if (len && *(p - 1) == '\r') --len;
> + TRACE("%s\n", debugstr_an(line, len));
> + line = ++p;
> + }
> + else ++p;
> + }
> + if (line != p)
> + TRACE("%s\n", debugstr_an(line, p - line));
> + }
This only breaks at '\n', which might still be too much if the lines
are particularly long.
I also wrote a patch for this a few days ago. I'm going to send it to
wine-patches in a bit, I'd appreciate if you can test if it works for
you or point out any issue with it.
More information about the wine-devel
mailing list