@@ -54,8 +54,8 @@ constexpr int kLogBufSize = 2000;
5454// Hook AWS logging into absl logging.
5555ABSL_CONST_INIT internal_log::VerboseFlag aws_logging (" aws" );
5656
57- int absl_log (aws_logger * logger, aws_log_level log_level,
58- aws_log_subject_t subject, const char * format, ...) {
57+ int absl_log (aws_logger* logger, aws_log_level log_level,
58+ aws_log_subject_t subject, const char * format, ...) {
5959 absl::LogSeverity severity = absl::LogSeverity::kInfo ;
6060 if (log_level <= AWS_LL_FATAL) {
6161 severity = absl::LogSeverity::kFatal ;
@@ -74,12 +74,12 @@ int absl_log(aws_logger *logger, aws_log_level log_level,
7474 // AWS Logging doesn't provide a way to get the filename or line number,
7575 // instead use the aws subject name as the filename and the subject itself as
7676 // the line number.
77- const char * subject_name = aws_log_subject_name (subject);
77+ const char * subject_name = aws_log_subject_name (subject);
7878 bool is_valid_subject =
7979 (subject_name != nullptr && strcmp (subject_name, " Unknown" ) != 0 );
8080
8181 char buffer[kLogBufSize ];
82- char * buf = buffer;
82+ char * buf = buffer;
8383 size_t size = sizeof (buffer);
8484
8585 va_list argptr;
@@ -94,9 +94,10 @@ int absl_log(aws_logger *logger, aws_log_level log_level,
9494 return AWS_OP_SUCCESS;
9595};
9696
97- enum aws_log_level absl_get_log_level (aws_logger * logger,
97+ enum aws_log_level absl_get_log_level (aws_logger* logger,
9898 aws_log_subject_t subject) {
99- uintptr_t lvl = reinterpret_cast <uintptr_t >(logger->p_impl );
99+ uintptr_t lvl;
100+ memcpy (&lvl, &logger->p_impl , sizeof (lvl));
100101 if (lvl != 0 ) {
101102 return static_cast <enum aws_log_level>(lvl - 1 );
102103 }
@@ -110,28 +111,29 @@ enum aws_log_level absl_get_log_level(aws_logger *logger,
110111 return AWS_LL_INFO;
111112}
112113
113- int absl_set_log_level (aws_logger *logger, aws_log_level lvl) {
114- if (lvl == AWS_LL_NONE) {
115- reinterpret_cast <uintptr_t &>(logger->p_impl ) = 0 ;
116- } else {
117- reinterpret_cast <uintptr_t &>(logger->p_impl ) =
118- 1 + static_cast <uintptr_t >(lvl);
114+ int absl_set_log_level (aws_logger* logger, aws_log_level lvl) {
115+ uintptr_t l = 0 ;
116+ if (lvl != AWS_LL_NONE) {
117+ l = 1 + static_cast <uintptr_t >(lvl);
119118 }
119+ memcpy (&logger->p_impl , &l, sizeof (l));
120120 return AWS_OP_SUCCESS;
121121}
122122
123- void absl_clean_up (aws_logger *logger) { (void )logger; }
123+ void absl_clean_up (aws_logger*) {
124+ // noop
125+ }
124126
125127// Some C++ compiler targets don't like designated initializers in C++, until
126128// they are supported static_assert() on the offsets
127129static_assert (offsetof(aws_logger_vtable, log) == 0 );
128- static_assert (offsetof(aws_logger_vtable, get_log_level) == sizeof (void *));
129- static_assert (offsetof(aws_logger_vtable, clean_up) == 2 * sizeof (void *));
130- static_assert (offsetof(aws_logger_vtable, set_log_level) == 3 * sizeof (void *));
130+ static_assert (offsetof(aws_logger_vtable, get_log_level) == sizeof (void *));
131+ static_assert (offsetof(aws_logger_vtable, clean_up) == 2 * sizeof (void *));
132+ static_assert (offsetof(aws_logger_vtable, set_log_level) == 3 * sizeof (void *));
131133
132134static_assert (offsetof(aws_logger, vtable) == 0 );
133- static_assert (offsetof(aws_logger, allocator) == sizeof (void *));
134- static_assert (offsetof(aws_logger, p_impl) == 2 * sizeof (void *));
135+ static_assert (offsetof(aws_logger, allocator) == sizeof (void *));
136+ static_assert (offsetof(aws_logger, p_impl) == 2 * sizeof (void *));
135137
136138ABSL_CONST_INIT aws_logger_vtable s_absl_vtable{
137139 /* .log=*/ absl_log,
@@ -164,15 +166,15 @@ class AwsApi {
164166 aws_auth_library_init (allocator_);
165167 }
166168
167- aws_allocator * allocator () { return allocator_; }
169+ aws_allocator* allocator () { return allocator_; }
168170
169- aws_client_bootstrap * client_bootstrap () ABSL_LOCKS_EXCLUDED(mutex_) {
171+ aws_client_bootstrap* client_bootstrap () ABSL_LOCKS_EXCLUDED(mutex_) {
170172 absl::MutexLock l (mutex_);
171173 init_client_bootstrap ();
172174 return client_bootstrap_;
173175 }
174176
175- aws_tls_ctx * tls_ctx () ABSL_LOCKS_EXCLUDED(mutex_) {
177+ aws_tls_ctx* tls_ctx () ABSL_LOCKS_EXCLUDED(mutex_) {
176178 absl::MutexLock l (mutex_);
177179 init_tls_ctx ();
178180 return tls_ctx_;
@@ -224,27 +226,27 @@ class AwsApi {
224226 }
225227
226228 absl::Mutex mutex_;
227- aws_allocator * allocator_ = nullptr ;
228- aws_event_loop_group * event_loop_group_ ABSL_GUARDED_BY (mutex_) = nullptr;
229- aws_host_resolver * resolver_ ABSL_GUARDED_BY (mutex_) = nullptr;
230- aws_client_bootstrap * client_bootstrap_ ABSL_GUARDED_BY (mutex_) = nullptr;
231- aws_tls_ctx * tls_ctx_ ABSL_GUARDED_BY (mutex_) = nullptr;
229+ aws_allocator* allocator_ = nullptr ;
230+ aws_event_loop_group* event_loop_group_ ABSL_GUARDED_BY (mutex_) = nullptr;
231+ aws_host_resolver* resolver_ ABSL_GUARDED_BY (mutex_) = nullptr;
232+ aws_client_bootstrap* client_bootstrap_ ABSL_GUARDED_BY (mutex_) = nullptr;
233+ aws_tls_ctx* tls_ctx_ ABSL_GUARDED_BY (mutex_) = nullptr;
232234};
233235
234- AwsApi & GetAwsApi () {
236+ AwsApi& GetAwsApi () {
235237 static absl::NoDestructor<AwsApi> aws_api;
236238 return *aws_api;
237239}
238240
239241} // namespace
240242
241- aws_allocator * GetAwsAllocator () { return GetAwsApi ().allocator (); }
243+ aws_allocator* GetAwsAllocator () { return GetAwsApi ().allocator (); }
242244
243- aws_client_bootstrap * GetAwsClientBootstrap () {
245+ aws_client_bootstrap* GetAwsClientBootstrap () {
244246 return GetAwsApi ().client_bootstrap ();
245247}
246248
247- aws_tls_ctx * GetAwsTlsCtx () { return GetAwsApi ().tls_ctx (); }
249+ aws_tls_ctx* GetAwsTlsCtx () { return GetAwsApi ().tls_ctx (); }
248250
249251} // namespace internal_aws
250252} // namespace tensorstore
0 commit comments