1e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//===-------------------------- ios.cpp -----------------------------------===// 2e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// 3e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// The LLVM Compiler Infrastructure 4e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// 5e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// This file is dual licensed under the MIT and the University of Illinois Open 6e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// Source Licenses. See LICENSE.TXT for details. 7e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// 8e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//===----------------------------------------------------------------------===// 9e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 10e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "__config" 11e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 12e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#undef _LIBCPP_EXTERN_TEMPLATE 13e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__; 14e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 15e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "ios" 16e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 17e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include <stdlib.h> 18e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 19e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "__locale" 20e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "algorithm" 21e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "include/config_elast.h" 22e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "istream" 23e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "limits" 24e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "memory" 25e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "new" 26e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "streambuf" 27e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "string" 28e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "__undef_macros" 29e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 30e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot_LIBCPP_BEGIN_NAMESPACE_STD 31e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 32e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<char>; 33e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ios<wchar_t>; 34e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 35e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<char>; 36e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_streambuf<wchar_t>; 37e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 38e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<char>; 39e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_istream<wchar_t>; 40e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 41e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<char>; 42e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_ostream<wchar_t>; 43e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 44e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS basic_iostream<char>; 45e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 46e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotclass _LIBCPP_HIDDEN __iostream_category 47e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot : public __do_message 48e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 49e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotpublic: 50e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot virtual const char* name() const _NOEXCEPT; 51e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot virtual string message(int ev) const; 52e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}; 53e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 54e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst char* 55e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot__iostream_category::name() const _NOEXCEPT 56e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 57e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return "iostream"; 58e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 59e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 60e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotstring 61e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot__iostream_category::message(int ev) const 62e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 63e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (ev != static_cast<int>(io_errc::stream) 64e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifdef _LIBCPP_ELAST 65e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot && ev <= _LIBCPP_ELAST 66e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_ELAST 67e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot ) 68e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return __do_message::message(ev); 69e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return string("unspecified iostream_category error"); 70e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 71e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 72e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst error_category& 73e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotiostream_category() _NOEXCEPT 74e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 75e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot static __iostream_category s; 76e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return s; 77e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 78e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 79e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// ios_base::failure 80e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 81e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::failure::failure(const string& msg, const error_code& ec) 82e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot : system_error(ec, msg) 83e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 84e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 85e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 86e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::failure::failure(const char* msg, const error_code& ec) 87e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot : system_error(ec, msg) 88e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 89e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 90e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 91e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::failure::~failure() throw() 92e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 93e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 94e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 95e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// ios_base locale 96e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 97e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::boolalpha; 98e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::dec; 99e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::fixed; 100e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::hex; 101e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::internal; 102e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::left; 103e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::oct; 104e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::right; 105e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::scientific; 106e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::showbase; 107e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::showpoint; 108e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::showpos; 109e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::skipws; 110e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::unitbuf; 111e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::uppercase; 112e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::adjustfield; 113e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::basefield; 114e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::fmtflags ios_base::floatfield; 115e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 116e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::badbit; 117e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::eofbit; 118e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::failbit; 119e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::iostate ios_base::goodbit; 120e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 121e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::app; 122e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::ate; 123e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::binary; 124e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::in; 125e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::out; 126e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotconst ios_base::openmode ios_base::trunc; 127e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 128e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 129e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::__call_callbacks(event ev) 130e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 131e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot for (size_t i = __event_size_; i;) 132e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 133e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot --i; 134e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_[i](ev, *this, __index_[i]); 135e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 136e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 137e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 138e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// locale 139e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 140e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotlocale 141e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::imbue(const locale& newloc) 142e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 143e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot static_assert(sizeof(locale) == sizeof(__loc_), ""); 144e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale& loc_storage = *reinterpret_cast<locale*>(&__loc_); 145e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale oldloc = loc_storage; 146e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot loc_storage = newloc; 147e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __call_callbacks(imbue_event); 148e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return oldloc; 149e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 150e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 151e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotlocale 152e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::getloc() const 153e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 154e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot const locale& loc_storage = *reinterpret_cast<const locale*>(&__loc_); 155e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return loc_storage; 156e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 157e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 158e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// xalloc 159e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#if defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_NO_THREADS) 160e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotatomic<int> ios_base::__xindex_ = ATOMIC_VAR_INIT(0); 161e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#else 162e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotint ios_base::__xindex_ = 0; 163e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif 164e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 165e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottemplate <typename _Tp> 166e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotstatic size_t __ios_new_cap(size_t __req_size, size_t __current_cap) 167e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ // Precondition: __req_size > __current_cap 168e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot const size_t mx = std::numeric_limits<size_t>::max() / sizeof(_Tp); 169e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__req_size < mx/2) 170e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return _VSTD::max(2 * __current_cap, __req_size); 171e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot else 172e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return mx; 173e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 174e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 175e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotint 176e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::xalloc() 177e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 178e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return __xindex_++; 179e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 180e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 181e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotlong& 182e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::iword(int index) 183e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 184e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t req_size = static_cast<size_t>(index)+1; 185e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (req_size > __iarray_cap_) 186e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 187e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newcap = __ios_new_cap<long>(req_size, __iarray_cap_); 188e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot long* iarray = static_cast<long*>(realloc(__iarray_, newcap * sizeof(long))); 189e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (iarray == 0) 190e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 191e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot setstate(badbit); 192e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot static long error; 193e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot error = 0; 194e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return error; 195e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 196e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_ = iarray; 197e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot for (long* p = __iarray_ + __iarray_size_; p < __iarray_ + newcap; ++p) 198e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot *p = 0; 199e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_cap_ = newcap; 200e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 201e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_size_ = max<size_t>(__iarray_size_, req_size); 202e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return __iarray_[index]; 203e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 204e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 205e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid*& 206e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::pword(int index) 207e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 208e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t req_size = static_cast<size_t>(index)+1; 209e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (req_size > __parray_cap_) 210e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 211e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newcap = __ios_new_cap<void *>(req_size, __iarray_cap_); 212e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot void** parray = static_cast<void**>(realloc(__parray_, newcap * sizeof(void *))); 213e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (parray == 0) 214e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 215e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot setstate(badbit); 216e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot static void* error; 217e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot error = 0; 218e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return error; 219e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 220e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_ = parray; 221e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot for (void** p = __parray_ + __parray_size_; p < __parray_ + newcap; ++p) 222e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot *p = 0; 223e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_cap_ = newcap; 224e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 225e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_size_ = max<size_t>(__parray_size_, req_size); 226e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return __parray_[index]; 227e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 228e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 229e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// register_callback 230e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 231e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 232e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::register_callback(event_callback fn, int index) 233e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 234e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t req_size = __event_size_ + 1; 235e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (req_size > __event_cap_) 236e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 237e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newcap = __ios_new_cap<event_callback>(req_size, __event_cap_); 238e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot event_callback* fns = static_cast<event_callback*>(realloc(__fn_, newcap * sizeof(event_callback))); 239e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (fns == 0) 240e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot setstate(badbit); 241e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_ = fns; 242e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot int* indxs = static_cast<int *>(realloc(__index_, newcap * sizeof(int))); 243e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (indxs == 0) 244e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot setstate(badbit); 245e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __index_ = indxs; 246e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __event_cap_ = newcap; 247e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 248e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_[__event_size_] = fn; 249e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __index_[__event_size_] = index; 250e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot ++__event_size_; 251e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 252e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 253e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::~ios_base() 254e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 255e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __call_callbacks(erase_event); 256e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale& loc_storage = *reinterpret_cast<locale*>(&__loc_); 257e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot loc_storage.~locale(); 258e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__fn_); 259e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__index_); 260e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__iarray_); 261e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__parray_); 262e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 263e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 264e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// iostate 265e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 266e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 267e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::clear(iostate state) 268e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 269e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__rdbuf_) 270e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdstate_ = state; 271e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot else 272e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdstate_ = state | badbit; 273e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 274e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (((state | (__rdbuf_ ? goodbit : badbit)) & __exceptions_) != 0) 275e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw failure("ios_base::clear"); 276e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 277e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 278e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 279e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// init 280e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 281e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 282e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::init(void* sb) 283e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 284e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdbuf_ = sb; 285e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdstate_ = __rdbuf_ ? goodbit : badbit; 286e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __exceptions_ = goodbit; 287e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fmtflags_ = skipws | dec; 288e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __width_ = 0; 289e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __precision_ = 6; 290e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_ = 0; 291e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __index_ = 0; 292e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __event_size_ = 0; 293e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __event_cap_ = 0; 294e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_ = 0; 295e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_size_ = 0; 296e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_cap_ = 0; 297e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_ = 0; 298e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_size_ = 0; 299e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_cap_ = 0; 300e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot ::new(&__loc_) locale; 301e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 302e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 303e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 304e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::copyfmt(const ios_base& rhs) 305e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 306e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot // If we can't acquire the needed resources, throw bad_alloc (can't set badbit) 307e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot // Don't alter *this until all needed resources are acquired 308e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot unique_ptr<event_callback, void (*)(void*)> new_callbacks(0, free); 309e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot unique_ptr<int, void (*)(void*)> new_ints(0, free); 310e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot unique_ptr<long, void (*)(void*)> new_longs(0, free); 311e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot unique_ptr<void*, void (*)(void*)> new_pointers(0, free); 312e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__event_cap_ < rhs.__event_size_) 313e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 314e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newesize = sizeof(event_callback) * rhs.__event_size_; 315e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot new_callbacks.reset(static_cast<event_callback*>(malloc(newesize))); 316e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 317e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (!new_callbacks) 318e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw bad_alloc(); 319e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 320e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 321e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newisize = sizeof(int) * rhs.__event_size_; 322e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot new_ints.reset(static_cast<int *>(malloc(newisize))); 323e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 324e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (!new_ints) 325e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw bad_alloc(); 326e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 327e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 328e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__iarray_cap_ < rhs.__iarray_size_) 329e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 330e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newsize = sizeof(long) * rhs.__iarray_size_; 331e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot new_longs.reset(static_cast<long*>(malloc(newsize))); 332e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 333e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (!new_longs) 334e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw bad_alloc(); 335e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 336e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 337e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__parray_cap_ < rhs.__parray_size_) 338e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 339e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot size_t newsize = sizeof(void*) * rhs.__parray_size_; 340e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot new_pointers.reset(static_cast<void**>(malloc(newsize))); 341e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 342e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (!new_pointers) 343e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw bad_alloc(); 344e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 345e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 346e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot // Got everything we need. Copy everything but __rdstate_, __rdbuf_ and __exceptions_ 347e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fmtflags_ = rhs.__fmtflags_; 348e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __precision_ = rhs.__precision_; 349e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __width_ = rhs.__width_; 350e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale& lhs_loc = *reinterpret_cast<locale*>(&__loc_); 351e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot const locale& rhs_loc = *reinterpret_cast<const locale*>(&rhs.__loc_); 352e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot lhs_loc = rhs_loc; 353e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__event_cap_ < rhs.__event_size_) 354e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 355e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__fn_); 356e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_ = new_callbacks.release(); 357e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__index_); 358e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __index_ = new_ints.release(); 359e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __event_cap_ = rhs.__event_size_; 360e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 361e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot for (__event_size_ = 0; __event_size_ < rhs.__event_size_; ++__event_size_) 362e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 363e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_[__event_size_] = rhs.__fn_[__event_size_]; 364e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __index_[__event_size_] = rhs.__index_[__event_size_]; 365e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 366e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__iarray_cap_ < rhs.__iarray_size_) 367e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 368e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__iarray_); 369e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_ = new_longs.release(); 370e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_cap_ = rhs.__iarray_size_; 371e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 372e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot for (__iarray_size_ = 0; __iarray_size_ < rhs.__iarray_size_; ++__iarray_size_) 373e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_[__iarray_size_] = rhs.__iarray_[__iarray_size_]; 374e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__parray_cap_ < rhs.__parray_size_) 375e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot { 376e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot free(__parray_); 377e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_ = new_pointers.release(); 378e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_cap_ = rhs.__parray_size_; 379e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot } 380e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot for (__parray_size_ = 0; __parray_size_ < rhs.__parray_size_; ++__parray_size_) 381e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_[__parray_size_] = rhs.__parray_[__parray_size_]; 382e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 383e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 384e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 385e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::move(ios_base& rhs) 386e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 387e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot // *this is uninitialized 388e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fmtflags_ = rhs.__fmtflags_; 389e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __precision_ = rhs.__precision_; 390e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __width_ = rhs.__width_; 391e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdstate_ = rhs.__rdstate_; 392e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __exceptions_ = rhs.__exceptions_; 393e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdbuf_ = 0; 394e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale& rhs_loc = *reinterpret_cast<locale*>(&rhs.__loc_); 395e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot ::new(&__loc_) locale(rhs_loc); 396e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __fn_ = rhs.__fn_; 397e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__fn_ = 0; 398e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __index_ = rhs.__index_; 399e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__index_ = 0; 400e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __event_size_ = rhs.__event_size_; 401e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__event_size_ = 0; 402e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __event_cap_ = rhs.__event_cap_; 403e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__event_cap_ = 0; 404e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_ = rhs.__iarray_; 405e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__iarray_ = 0; 406e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_size_ = rhs.__iarray_size_; 407e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__iarray_size_ = 0; 408e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __iarray_cap_ = rhs.__iarray_cap_; 409e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__iarray_cap_ = 0; 410e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_ = rhs.__parray_; 411e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__parray_ = 0; 412e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_size_ = rhs.__parray_size_; 413e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__parray_size_ = 0; 414e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __parray_cap_ = rhs.__parray_cap_; 415e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot rhs.__parray_cap_ = 0; 416e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 417e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 418e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 419e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::swap(ios_base& rhs) _NOEXCEPT 420e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 421e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__fmtflags_, rhs.__fmtflags_); 422e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__precision_, rhs.__precision_); 423e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__width_, rhs.__width_); 424e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__rdstate_, rhs.__rdstate_); 425e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__exceptions_, rhs.__exceptions_); 426e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale& lhs_loc = *reinterpret_cast<locale*>(&__loc_); 427e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot locale& rhs_loc = *reinterpret_cast<locale*>(&rhs.__loc_); 428e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(lhs_loc, rhs_loc); 429e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__fn_, rhs.__fn_); 430e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__index_, rhs.__index_); 431e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__event_size_, rhs.__event_size_); 432e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__event_cap_, rhs.__event_cap_); 433e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__iarray_, rhs.__iarray_); 434e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__iarray_size_, rhs.__iarray_size_); 435e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__iarray_cap_, rhs.__iarray_cap_); 436e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__parray_, rhs.__parray_); 437e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__parray_size_, rhs.__parray_size_); 438e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot _VSTD::swap(__parray_cap_, rhs.__parray_cap_); 439e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 440e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 441e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 442e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::__set_badbit_and_consider_rethrow() 443e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 444e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdstate_ |= badbit; 445e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 446e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__exceptions_ & badbit) 447e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw; 448e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 449e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 450e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 451e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid 452e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::__set_failbit_and_consider_rethrow() 453e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 454e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot __rdstate_ |= failbit; 455e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#ifndef _LIBCPP_NO_EXCEPTIONS 456e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot if (__exceptions_ & failbit) 457e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot throw; 458e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#endif // _LIBCPP_NO_EXCEPTIONS 459e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 460e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 461e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotbool 462e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotios_base::sync_with_stdio(bool sync) 463e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{ 464e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot static bool previous_state = true; 465e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot bool r = previous_state; 466e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot previous_state = sync; 467e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot return r; 468e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot} 469e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot 470e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot_LIBCPP_END_NAMESPACE_STD 471