summaryrefslogtreecommitdiff
path: root/src/md/errors_metadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/md/errors_metadata.h')
-rw-r--r--src/md/errors_metadata.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/md/errors_metadata.h b/src/md/errors_metadata.h
new file mode 100644
index 0000000000..cc1edf617a
--- /dev/null
+++ b/src/md/errors_metadata.h
@@ -0,0 +1,61 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#include <corerror.h>
+#include <winerror.h>
+
+// Index into heap/table is too large.
+#define METADATA_E_INDEX_NOTFOUND CLDB_E_INDEX_NOTFOUND
+ // Options:
+ // * CLDB_E_INDEX_NOTFOUND
+ // * VLDTR_E_BLOB_INVALID
+ // * VLDTR_E_GUID_INVALID
+ // * VLDTR_E_STRING_INVALID
+ // * VLDTR_E_RID_OUTOFRANGE
+
+// Internal error, it's a runtime assert check to avoid security errors. If this is returned, then there's
+// something wrong with MetaData code.
+#define METADATA_E_INTERNAL_ERROR CLDB_E_INTERNALERROR
+ // Options:
+ // * CLDB_E_INTERNALERROR
+ // * COR_E_EXECUTIONENGINE
+
+// MetaData space (heap/table) is full, cannot store more items.
+#define METADATA_E_HEAP_FULL META_E_STRINGSPACE_FULL
+ // Options:
+ // * META_E_STRINGSPACE_FULL
+ // * CLDB_E_TOO_BIG
+
+// Invalid heap (blob, user string) data encoding.
+#define METADATA_E_INVALID_HEAP_DATA META_E_BADMETADATA
+ // Options:
+ // * META_E_BADMETADATA
+ // * META_E_CA_INVALID_BLOB
+ // * META_E_BAD_SIGNATURE
+ // * CLDB_E_FILE_CORRUPT
+ // * COR_E_BADIMAGEFORMAT
+
+// The data is too big to encode (the string/blob is larger than possible heap size).
+#define METADATA_E_DATA_TOO_BIG CLDB_E_TOO_BIG
+ // Options:
+ // * CLDB_E_TOO_BIG
+
+// Invalid MetaData format (headers, etc.).
+#define METADATA_E_INVALID_FORMAT COR_E_BADIMAGEFORMAT
+ // Options:
+ // * META_E_BADMETADATA
+ // * META_E_CA_INVALID_BLOB
+ // * META_E_BAD_SIGNATURE
+ // * CLDB_E_FILE_CORRUPT
+ // * COR_E_BADIMAGEFORMAT
+
+//
+// Other used error codes:
+// * COR_E_OUTOFMEMORY ... defined as E_OUTOFMEMORY
+// Alternatives:
+// * E_OUTOFMEMORY (from IfNullGo/IfNullRet macros)
+// * COR_E_OVERFLOW
+// Alternatives:
+// * COR_E_ARITHMETIC
+//