Hi!

On Wed, Feb 23, 2005 at 10:26:05PM +0000, Andreas Pflug wrote:

> >Attached patch fixes coredump in non-Unicode version of pgadmin3.
> >This allows to build (non-Unicode) pgadmin3 on FreeBSD 4.x.
> 
> This patch appears highly dubious to me (apart from the fact that I'd 
> call non-unicode unsupported).
> 
> >+#if wxUSE_UNICODE
> >+            size_t buf_len = nLen;
> >+#else
> >+            size_t buf_len = nLen * sizeof(wchar_t);
> >+#endif
> > + 
> m_conversion->MB2WC((wchar_t*)(wxChar*)wxStringBuffer(str, buf_len), 
> (const char*)buffer, (size_t)(nLen+1));
> 
> wxStringBuffers expects the second parameter to contain the number of 
> characters (not bytes), which will be the same for unicode as and 
> non-unicode.

No. wxStringBuffer uses wxWCharBuffer in Unicode case and
wxCharBuffer in non-Unicode case.

> Using sizeof(wchar_t) in non-unicode is just an arbitrary 
> number with no special meaning, might be the magic constant 42 as well. 
> The only mechanism of "fix" I could think of is that wxStringBuffer 
> really should receive nLen+1 instead of nLen.
>
> Max, apparently you have a test case, please check nLen+1 instead of 
> buf_len.

It doesn't help.

/fjoe

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to