make adt tag signed (#4605)
authorZhi <5145158+zhiics@users.noreply.github.com>
Wed, 1 Jan 2020 06:36:19 +0000 (22:36 -0800)
committerTianqi Chen <tqchen@users.noreply.github.com>
Wed, 1 Jan 2020 06:36:19 +0000 (22:36 -0800)
include/tvm/runtime/container.h

index 4dc07f4..92d3e71 100644 (file)
@@ -164,7 +164,7 @@ class InplaceArrayBase {
 class ADTObj : public Object, public InplaceArrayBase<ADTObj, ObjectRef> {
  public:
   /*! \brief The tag representing the constructor used. */
-  uint32_t tag;
+  int32_t tag;
   /*! \brief Number of fields in the ADT object. */
   uint32_t size;
   // The fields of the structure follows directly in memory.
@@ -211,7 +211,7 @@ class ADT : public ObjectRef {
    * \param fields The fields of the ADT object.
    * \return The constructed ADT object reference.
    */
-  ADT(uint32_t tag, std::vector<ObjectRef> fields)
+  ADT(int32_t tag, std::vector<ObjectRef> fields)
       : ADT(tag, fields.begin(), fields.end()){};
 
   /*!
@@ -222,7 +222,7 @@ class ADT : public ObjectRef {
    * \return The constructed ADT object reference.
    */
   template <typename Iterator>
-  ADT(uint32_t tag, Iterator begin, Iterator end) {
+  ADT(int32_t tag, Iterator begin, Iterator end) {
     size_t num_elems = std::distance(begin, end);
     auto ptr = make_inplace_array_object<ADTObj, ObjectRef>(num_elems);
     ptr->tag = tag;
@@ -236,7 +236,7 @@ class ADT : public ObjectRef {
    * \param init The initializer list of fields.
    * \return The constructed ADT object reference.
    */
-  ADT(uint32_t tag, std::initializer_list<ObjectRef> init)
+  ADT(int32_t tag, std::initializer_list<ObjectRef> init)
       : ADT(tag, init.begin(), init.end()){};
 
   /*!
@@ -252,7 +252,7 @@ class ADT : public ObjectRef {
   /*!
    * \brief Return the ADT tag.
    */
-  size_t tag() const { return operator->()->tag; }
+  int32_t tag() const { return operator->()->tag; }
 
   /*!
    * \brief Return the number of fields.