Make ThreadLocalBuffer a class rather than a macro.

Bug: 19995392
Change-Id: I497c512648fbe66257da3fb3bcd5c9911f983705
diff --git a/libc/bionic/pty.cpp b/libc/bionic/pty.cpp
index 8847147..1a37847 100644
--- a/libc/bionic/pty.cpp
+++ b/libc/bionic/pty.cpp
@@ -38,8 +38,8 @@
 
 #include "private/ThreadLocalBuffer.h"
 
-GLOBAL_INIT_THREAD_LOCAL_BUFFER(ptsname);
-GLOBAL_INIT_THREAD_LOCAL_BUFFER(ttyname);
+static ThreadLocalBuffer<char, 32> g_ptsname_tls_buffer;
+static ThreadLocalBuffer<char, 64> g_ttyname_tls_buffer;
 
 int getpt() {
   return posix_openpt(O_RDWR|O_NOCTTY);
@@ -54,9 +54,9 @@
 }
 
 char* ptsname(int fd) {
-  LOCAL_INIT_THREAD_LOCAL_BUFFER(char*, ptsname, 32);
-  int error = ptsname_r(fd, ptsname_tls_buffer, ptsname_tls_buffer_size);
-  return (error == 0) ? ptsname_tls_buffer : NULL;
+  char* buf = g_ptsname_tls_buffer.get();
+  int error = ptsname_r(fd, buf, g_ptsname_tls_buffer.size());
+  return (error == 0) ? buf : NULL;
 }
 
 int ptsname_r(int fd, char* buf, size_t len) {
@@ -80,9 +80,9 @@
 }
 
 char* ttyname(int fd) {
-  LOCAL_INIT_THREAD_LOCAL_BUFFER(char*, ttyname, 64);
-  int error = ttyname_r(fd, ttyname_tls_buffer, ttyname_tls_buffer_size);
-  return (error == 0) ? ttyname_tls_buffer : NULL;
+  char* buf = g_ttyname_tls_buffer.get();
+  int error = ttyname_r(fd, buf, g_ttyname_tls_buffer.size());
+  return (error == 0) ? buf : NULL;
 }
 
 int ttyname_r(int fd, char* buf, size_t len) {