ソースを参照

Add long double support in FLEXRuntimeUtility

Chaoshuai Lu 6 年 前
コミット
5a54f5808d
共有3 個のファイルを変更した7 個の追加1 個の削除を含む
  1. 2 1
      Classes/Editing/ArgumentInputViews/FLEXArgumentInputNumberView.m
  2. 1 0
      Classes/Utility/FLEXRuntimeUtility.h
  3. 4 0
      Classes/Utility/FLEXRuntimeUtility.m

+ 2 - 1
Classes/Editing/ArgumentInputViews/FLEXArgumentInputNumberView.m

@@ -49,7 +49,8 @@
                            @(@encode(unsigned long)),
                            @(@encode(unsigned long long)),
                            @(@encode(float)),
-                           @(@encode(double))];
+                           @(@encode(double)),
+                           @(@encode(long double))];
     });
     return type && [primitiveTypes containsObject:@(type)];
 }

+ 1 - 0
Classes/Utility/FLEXRuntimeUtility.h

@@ -40,6 +40,7 @@ typedef NS_ENUM(char, FLEXTypeEncoding)
     FLEXTypeEncodingUnsignedLongLong = 'Q',
     FLEXTypeEncodingFloat            = 'f',
     FLEXTypeEncodingDouble           = 'd',
+    FLEXTypeEncodingLongDouble       = 'D',
     FLEXTypeEncodingCBool            = 'B',
     FLEXTypeEncodingVoid             = 'v',
     FLEXTypeEncodingCString          = '*',

+ 4 - 0
Classes/Utility/FLEXRuntimeUtility.m

@@ -595,6 +595,9 @@ const unsigned int kFLEXNumberOfImplicitArgs = 2;
     } else if (strcmp(typeEncoding, @encode(double)) == 0) {
         double primitiveValue = [number doubleValue];
         value = [NSValue value:&primitiveValue withObjCType:typeEncoding];
+    } else if (strcmp(typeEncoding, @encode(long double)) == 0) {
+      long double primitiveValue = [number doubleValue];
+      value = [NSValue value:&primitiveValue withObjCType:typeEncoding];
     }
 
     return value;
@@ -789,6 +792,7 @@ const unsigned int kFLEXNumberOfImplicitArgs = 2;
     CASE(unsigned long long, UnsignedLongLong);
     CASE(float, Float);
     CASE(double, Double);
+    CASE(long double, Double);
 
 #undef CASE