diff clang-tools-extra/clangd/RIFF.cpp @ 221:79ff65ed7e25

LLVM12 Original
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 15 Jun 2021 19:15:29 +0900
parents 1d019706d866
children
line wrap: on
line diff
--- a/clang-tools-extra/clangd/RIFF.cpp	Tue Jun 15 19:13:43 2021 +0900
+++ b/clang-tools-extra/clangd/RIFF.cpp	Tue Jun 15 19:15:29 2021 +0900
@@ -7,31 +7,28 @@
 //===----------------------------------------------------------------------===//
 
 #include "RIFF.h"
+#include "support/Logger.h"
 #include "llvm/Support/Endian.h"
 
 namespace clang {
 namespace clangd {
 namespace riff {
 
-static llvm::Error makeError(const char *Msg) {
-  return llvm::createStringError(llvm::inconvertibleErrorCode(), Msg);
-}
-
 llvm::Expected<Chunk> readChunk(llvm::StringRef &Stream) {
   if (Stream.size() < 8)
-    return makeError("incomplete chunk header");
+    return error("incomplete chunk header: {0} bytes available", Stream.size());
   Chunk C;
   std::copy(Stream.begin(), Stream.begin() + 4, C.ID.begin());
   Stream = Stream.drop_front(4);
   uint32_t Len = llvm::support::endian::read32le(Stream.take_front(4).begin());
   Stream = Stream.drop_front(4);
   if (Stream.size() < Len)
-    return makeError("truncated chunk");
+    return error("truncated chunk: want {0}, got {1}", Len, Stream.size());
   C.Data = Stream.take_front(Len);
   Stream = Stream.drop_front(Len);
-  if (Len % 2 & !Stream.empty()) { // Skip padding byte.
+  if ((Len % 2) && !Stream.empty()) { // Skip padding byte.
     if (Stream.front())
-      return makeError("nonzero padding byte");
+      return error("nonzero padding byte");
     Stream = Stream.drop_front();
   }
   return std::move(C);
@@ -53,9 +50,9 @@
   if (!RIFF)
     return RIFF.takeError();
   if (RIFF->ID != fourCC("RIFF"))
-    return makeError("not a RIFF container");
+    return error("not a RIFF container: root is {0}", fourCCStr(RIFF->ID));
   if (RIFF->Data.size() < 4)
-    return makeError("RIFF chunk too short");
+    return error("RIFF chunk too short");
   File F;
   std::copy(RIFF->Data.begin(), RIFF->Data.begin() + 4, F.Type.begin());
   for (llvm::StringRef Body = RIFF->Data.drop_front(4); !Body.empty();)