@@ -341,15 +341,14 @@ __sanitizer_symbolize_set_inline_frames(bool InlineFrames);
341
341
class InternalSymbolizer final : public SymbolizerTool {
342
342
public:
343
343
static InternalSymbolizer *get (LowLevelAllocator *alloc) {
344
- if (&__sanitizer_symbolize_set_demangle)
345
- CHECK (__sanitizer_symbolize_set_demangle (common_flags ()->demangle ));
346
- if (&__sanitizer_symbolize_set_inline_frames)
347
- CHECK (__sanitizer_symbolize_set_inline_frames (
348
- common_flags ()->symbolize_inline_frames ));
349
- // These are essential, we don't have InternalSymbolizer without them.
350
- if (&__sanitizer_symbolize_code && &__sanitizer_symbolize_data)
351
- return new (*alloc) InternalSymbolizer ();
352
- return 0 ;
344
+ // These one is the most used one, so we will use it to detect a presence of
345
+ // internal symbolizer.
346
+ if (&__sanitizer_symbolize_code == nullptr )
347
+ return nullptr ;
348
+ CHECK (__sanitizer_symbolize_set_demangle (common_flags ()->demangle ));
349
+ CHECK (__sanitizer_symbolize_set_inline_frames (
350
+ common_flags ()->symbolize_inline_frames ));
351
+ return new (*alloc) InternalSymbolizer ();
353
352
}
354
353
355
354
bool SymbolizePC (uptr addr, SymbolizedStack *stack) override {
@@ -371,23 +370,17 @@ class InternalSymbolizer final : public SymbolizerTool {
371
370
}
372
371
373
372
bool SymbolizeFrame (uptr addr, FrameInfo *info) override {
374
- if (&__sanitizer_symbolize_frame == nullptr )
375
- return false ;
376
373
bool result = __sanitizer_symbolize_frame (info->module , info->module_offset ,
377
374
buffer_, sizeof (buffer_));
378
375
if (result)
379
376
ParseSymbolizeFrameOutput (buffer_, &info->locals );
380
377
return result;
381
378
}
382
379
383
- void Flush () override {
384
- if (&__sanitizer_symbolize_flush)
385
- __sanitizer_symbolize_flush ();
386
- }
380
+ void Flush () override { __sanitizer_symbolize_flush (); }
387
381
388
382
const char *Demangle (const char *name) override {
389
- if (&__sanitizer_symbolize_demangle &&
390
- __sanitizer_symbolize_demangle (name, buffer_, sizeof (buffer_))) {
383
+ if (__sanitizer_symbolize_demangle (name, buffer_, sizeof (buffer_))) {
391
384
char *res_buff = nullptr ;
392
385
ExtractToken (buffer_, " " , &res_buff);
393
386
return res_buff;
0 commit comments