Loading...
--- Libc/Libc-1725.40.4/stdio/FreeBSD/xprintf.c
+++ Libc/Libc-997.90.3/stdio/FreeBSD/xprintf.c
@@ -62,7 +62,6 @@
#include "xprintf_private.h"
#include "xprintf_domain.h"
#include "fvwrite.h"
-#include "libc_hooks_impl.h"
/*
* Defining XPRINTF_DEBUG allows the __private_extern__ variable __use_xprintf
@@ -243,26 +242,25 @@
__private_extern__ int
__printf_render_n(FILE *io __unused, const struct printf_info *pi, const void *const *arg)
{
- void *ptr = (void*)arg[0];
- if (pi->is_char) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, signed char, pi->sofar);
- } else if (pi->is_short) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, short, pi->sofar);
- } else if (pi->is_long) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, long, pi->sofar);
- } else if (pi->is_long_double) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, long long, pi->sofar);
- } else if (pi->is_intmax) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, intmax_t, pi->sofar);
- } else if (pi->is_ptrdiff) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, ptrdiff_t, pi->sofar);
- } else if (pi->is_quad) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, quad_t, pi->sofar);
- } else if (pi->is_size) {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, size_t, pi->sofar);
- } else {
- LIBC_HOOKS_WRITE_SIMPLE_TYPE(ptr, int, pi->sofar);
- }
+
+ if (pi->is_char)
+ **((signed char **)arg[0]) = (signed char)pi->sofar;
+ else if (pi->is_short)
+ **((short **)arg[0]) = (short)pi->sofar;
+ else if (pi->is_long)
+ **((long **)arg[0]) = pi->sofar;
+ else if (pi->is_long_double)
+ **((long long **)arg[0]) = pi->sofar;
+ else if (pi->is_intmax)
+ **((intmax_t **)arg[0]) = pi->sofar;
+ else if (pi->is_ptrdiff)
+ **((ptrdiff_t **)arg[0]) = pi->sofar;
+ else if (pi->is_quad)
+ **((quad_t **)arg[0]) = pi->sofar;
+ else if (pi->is_size)
+ **((size_t **)arg[0]) = pi->sofar;
+ else
+ **((int **)arg[0]) = pi->sofar;
return (0);
}
@@ -819,18 +817,12 @@
case PA_POINTER:
pc->args[ch].pvoidarg = va_arg (ap, void *);
break;
- case PA_STRING: {
- char *s = va_arg(ap, char *);
- libc_hooks_will_read_cstring(s);
- pc->args[ch].pchararg = s;
- break;
- }
- case PA_WSTRING: {
- wchar_t *wcs = va_arg(ap, wchar_t *);
- libc_hooks_will_read_wcstring(wcs);
- pc->args[ch].pwchararg = wcs;
- break;
- }
+ case PA_STRING:
+ pc->args[ch].pchararg = va_arg (ap, char *);
+ break;
+ case PA_WSTRING:
+ pc->args[ch].pwchararg = va_arg (ap, wchar_t *);
+ break;
case PA_DOUBLE:
#ifndef NO_FLOATING_POINT
pc->args[ch].doublearg = va_arg (ap, double);
@@ -924,9 +916,6 @@
struct _printf_compiled spc;
int ret, saverrno;
- libc_hooks_will_read(loc, sizeof(*loc));
- libc_hooks_will_read_cstring(fmt);
-
/*
* All the printf family (including extensible printf variants) funnel
* down to this point. So we can do common work here, and then fork
@@ -967,7 +956,7 @@
bzero(&spc, sizeof(spc));
spc.fmt = fmt;
DEFAULT_CURRENT_LOCALE(loc);
- xlocale_retain(loc);
+ XL_RETAIN(loc);
spc.loc = loc;
/*
* We don't need to lock the printf_comp_t mutex, since the
@@ -977,14 +966,14 @@
if (__printf_comp(&spc, domain) < 0) {
saverrno = errno;
pthread_rwlock_unlock(&domain->rwlock);
- xlocale_release(loc);
+ XL_RELEASE(loc);
errno = saverrno;
return EOF;
}
ret = __printf_exec(&spc, fp, ap);
saverrno = errno;
pthread_rwlock_unlock(&domain->rwlock);
- xlocale_release(loc);
+ XL_RELEASE(loc);
#ifdef XPRINTF_PERF
printf_info_enqueue(spc.pa);