Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2008-02-04 15:00:19 +0300
committerCorinna Vinschen <corinna@vinschen.de>2008-02-04 15:00:19 +0300
commit340e2fa50432585316b7828b4a696162a1920733 (patch)
tree173fc729a3e8538512dbd80341c02043e56bfd99 /winsup/cygwin/strfuncs.cc
parentb6cde8aa13e7ead6d3715e962fdff1e5fded2f35 (diff)
* smallprint.cc (__small_vsprintf): Use HEAP_NOTHEAP for type.
* strfuncs.cc (sys_wcstombs_alloc): Guard use of ccalloc to !__OUTSIDE_CYGWIN__ for use in cygserver. (sys_mbstowcs_alloc): Ditto.
Diffstat (limited to 'winsup/cygwin/strfuncs.cc')
-rw-r--r--winsup/cygwin/strfuncs.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/winsup/cygwin/strfuncs.cc b/winsup/cygwin/strfuncs.cc
index 0dac85e99..a97f942d2 100644
--- a/winsup/cygwin/strfuncs.cc
+++ b/winsup/cygwin/strfuncs.cc
@@ -60,7 +60,11 @@ sys_wcstombs (char *tgt, int tlen, const PWCHAR src, int slen)
value is the number of bytes written to the buffer, as usual.
The "type" argument determines where the resulting buffer is stored.
It's either one of the cygheap_types values, or it's "HEAP_NOTHEAP".
- In the latter case the allocation uses simple calloc. */
+ In the latter case the allocation uses simple calloc.
+
+ Note that this code is shared by cygserver (which requires it via
+ __small_vsprintf) and so when built there plain calloc is the
+ only choice. */
int __stdcall
sys_wcstombs_alloc (char **tgt_p, int type, const PWCHAR src, int slen)
{
@@ -71,10 +75,14 @@ sys_wcstombs_alloc (char **tgt_p, int type, const PWCHAR src, int slen)
{
size_t tlen = (slen == -1 ? ret : ret + 1);
+#ifndef __OUTSIDE_CYGWIN__
if (type == HEAP_NOTHEAP)
+#endif
*tgt_p = (char *) calloc (tlen, sizeof (char));
+#ifndef __OUTSIDE_CYGWIN__
else
*tgt_p = (char *) ccalloc ((cygheap_types) type, tlen, sizeof (char));
+#endif
if (!*tgt_p)
return 0;
ret = sys_wcstombs (*tgt_p, tlen, src, slen);
@@ -98,10 +106,14 @@ sys_mbstowcs_alloc (PWCHAR *tgt_p, int type, const char *src)
ret = MultiByteToWideChar (get_cp (), 0, src, -1, NULL, 0);
if (ret)
{
+#ifndef __OUTSIDE_CYGWIN__
if (type == HEAP_NOTHEAP)
+#endif
*tgt_p = (PWCHAR) calloc (ret, sizeof (WCHAR));
+#ifndef __OUTSIDE_CYGWIN__
else
*tgt_p = (PWCHAR) ccalloc ((cygheap_types) type, ret, sizeof (WCHAR));
+#endif
if (!*tgt_p)
return 0;
ret = sys_mbstowcs (*tgt_p, src, ret);