summaryrefslogtreecommitdiffstats
path: root/lldb/source/DataFormatters/CoreMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/DataFormatters/CoreMedia.cpp')
-rw-r--r--lldb/source/DataFormatters/CoreMedia.cpp89
1 files changed, 0 insertions, 89 deletions
diff --git a/lldb/source/DataFormatters/CoreMedia.cpp b/lldb/source/DataFormatters/CoreMedia.cpp
deleted file mode 100644
index 7be6f9a02a3..00000000000
--- a/lldb/source/DataFormatters/CoreMedia.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- CoreMedia.cpp --------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "lldb/DataFormatters/CoreMedia.h"
-
-#include "lldb/Core/Flags.h"
-#include "lldb/Symbol/TypeSystem.h"
-#include "lldb/Target/Target.h"
-#include <inttypes.h>
-
-using namespace lldb;
-using namespace lldb_private;
-using namespace lldb_private::formatters;
-
-bool
-lldb_private::formatters::CMTimeSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options)
-{
- CompilerType type = valobj.GetCompilerType();
- if (!type.IsValid())
- return false;
-
- TypeSystem *type_system = valobj.GetExecutionContextRef().GetTargetSP()->GetTypeSystemForLanguage(lldb::eLanguageTypeC);
- if (!type_system)
- return false;
-
- // fetch children by offset to compensate for potential lack of debug info
- auto int64_ty = type_system->GetIntTypeFromBitSize(64, true);
- auto int32_ty = type_system->GetIntTypeFromBitSize(32, true);
-
- auto value_sp(valobj.GetSyntheticChildAtOffset(0, int64_ty, true));
- auto timescale_sp(valobj.GetSyntheticChildAtOffset(8, int32_ty, true));
- auto flags_sp(valobj.GetSyntheticChildAtOffset(12, int32_ty, true));
-
- if (!value_sp || !timescale_sp || !flags_sp)
- return false;
-
- auto value = value_sp->GetValueAsUnsigned(0);
- auto timescale = (int32_t)timescale_sp->GetValueAsUnsigned(0); // the timescale specifies the fraction of a second each unit in the numerator occupies
- auto flags = Flags(flags_sp->GetValueAsUnsigned(0) & 0x00000000000000FF); // the flags I need sit in the LSB
-
- const unsigned int FlagPositiveInf = 4;
- const unsigned int FlagNegativeInf = 8;
- const unsigned int FlagIndefinite = 16;
-
- if (flags.AnySet(FlagIndefinite))
- {
- stream.Printf("indefinite");
- return true;
- }
-
- if (flags.AnySet(FlagPositiveInf))
- {
- stream.Printf("+oo");
- return true;
- }
-
- if (flags.AnySet(FlagNegativeInf))
- {
- stream.Printf("-oo");
- return true;
- }
-
- if (timescale == 0)
- return false;
-
- switch (timescale)
- {
- case 0:
- return false;
- case 1:
- stream.Printf("%" PRId64 " seconds", value);
- return true;
- case 2:
- stream.Printf("%" PRId64 " half seconds", value);
- return true;
- case 3:
- stream.Printf("%" PRId64 " third%sof a second", value, value == 1 ? " " : "s ");
- return true;
- default:
- stream.Printf("%" PRId64 " %" PRId32 "th%sof a second", value, timescale, value == 1 ? " " : "s ");
- return true;
- }
-}
OpenPOWER on IntegriCloud