فهرست منبع

refactor: RyanJsonGetType返回值类型强转为RyanjsonType_e

RyanCW 1 سال پیش
والد
کامیت
bad71a6aef
2فایلهای تغییر یافته به همراه4 افزوده شده و 4 حذف شده
  1. 3 3
      RyanJson/RyanJson.c
  2. 1 1
      RyanJson/RyanJson.h

+ 3 - 3
RyanJson/RyanJson.c

@@ -860,7 +860,7 @@ static RyanJsonBool RyanJsonPrintNumber(RyanJson_t pJson, printBuffer *buf)
     int32_t len = 0;
 
     // RyanJsonNumber 类型是一个整数
-    if (pJson->info & RyanJsonValueNumberIntFlag)
+    if (_checkType(pJson->info, RyanJsonValueNumberIntFlag))
     {
         // if (!printBufAppend(buf, 21)) // 64 位整数最多包含  20 个数字字符、1 符号
         if (!printBufAppend(buf, 11)) // 32 位整数最多包含  10 个数字字符、1 符号
@@ -1191,7 +1191,7 @@ static RyanJsonBool RyanJsonPrintValue(RyanJson_t pJson, printBuffer *buf, uint3
     }
     case RyanJsonTypeBool:
     {
-        if (pJson->info & RyanJsonValueBoolTrueFlag)
+        if (_checkType(pJson->info, RyanJsonValueBoolTrueFlag))
         {
             if (RyanJsonFalse == printBufAppend(buf, 4))
                 return RyanJsonFalse;
@@ -2151,7 +2151,7 @@ RyanJson_t RyanJsonDuplicate(RyanJson_t pJson)
         return NULL;
     }
 
-    switch ((char)pJson->info)
+    switch (RyanJsonGetType(pJson))
     {
     case RyanJsonTypeUnknow:
     case RyanJsonTypeNull:

+ 1 - 1
RyanJson/RyanJson.h

@@ -71,7 +71,7 @@ extern "C"
  * @brief 较底层接口, 不推荐用户使用,除非用户知道这些接口意义
  */
 #define RyanJsonGetInfo(pJson) ((pJson) ? ((pJson)->info) : 0)
-#define RyanJsonGetType(pJson) ((uint8_t)RyanJsonGetInfo(pJson))
+#define RyanJsonGetType(pJson) ((RyanjsonType_e)((uint8_t)RyanJsonGetInfo(pJson)))
     RyanJsonBool RyanJsonInsert(RyanJson_t pJson, int32_t index, RyanJson_t item);
     void *RyanJsonGetValue(RyanJson_t pJson);
     RyanJson_t RyanJsonGetObjectByIndexs(RyanJson_t pJson, int32_t index, ...);