{
  "ml": {
    "v": "4",
    "fs": [
      {
        "id": 0,
        "prob": 0.9207169413566589,
        "class": 0
      }
    ],
    "prob": 0.92071694,
    "class": 0,
    "version": "v16.16",
    "thresholds": [
      0.9815004,
      0.99404883
    ],
    "analyzed_at": "2026-04-30T15:48:23Z"
  },
  "path": "Variadic.c",
  "raw": {
    "v": "4",
    "fs": [
      {
        "id": 0,
        "is": [
          "Data_Make_Struct",
          "rb_gc_mark",
          "rb_gc_mark",
          "rb_gc_mark",
          "Check_Type",
          "rb_hash_aref",
          "ID2SYM",
          "rb_intern",
          "Data_Get_Struct",
          "rb_hash_aref",
          "ID2SYM",
          "rb_intern",
          "rbffi_AbstractMemory_Cast",
          "RTEST",
          "rb_hash_aref",
          "ID2SYM",
          "rb_intern",
          "rb_funcall2",
          "rb_intern",
          "RTEST",
          "strcmp",
          "StringValueCStr",
          "rbffi_Type_Lookup",
          "RTEST",
          "rb_funcall2",
          "rb_intern",
          "rb_raise",
          "RSTRING_PTR",
          "Data_Get_Struct",
          "rb_ary_new2",
          "RARRAY_LEN",
          "RARRAY_LEN",
          "rb_ary_entry",
          "rbffi_Type_Lookup",
          "RTEST",
          "rb_funcall2",
          "rb_intern",
          "rb_raise",
          "RSTRING_PTR",
          "Data_Get_Struct",
          "rb_ary_push",
          "rb_iv_set",
          "rb_iv_set",
          "rb_hash_aref",
          "ID2SYM",
          "rb_intern",
          "Check_Type",
          "Check_Type",
          "Data_Get_Struct",
          "RARRAY_LEN",
          "ALLOCA_N",
          "ALLOCA_N",
          "ALLOCA_N",
          "ALLOCA_N",
          "ALLOCA_N",
          "alloca",
          "MAX",
          "rb_ary_entry",
          "rb_obj_is_kind_of",
          "rb_raise",
          "Data_Get_Struct",
          "rb_const_get",
          "rb_intern",
          "Data_Get_Struct",
          "rb_const_get",
          "rb_intern",
          "Data_Get_Struct",
          "rb_const_get",
          "rb_intern",
          "Data_Get_Struct",
          "rb_raise",
          "rb_ary_entry",
          "rb_raise",
          "RARRAY_LEN",
          "rb_iv_get",
          "ffi_prep_cif_var",
          "ffi_prep_cif",
          "rb_raise",
          "rb_raise",
          "rb_raise",
          "rbffi_SetupCallParams",
          "rbffi_frame_push",
          "unlikely",
          "ALLOCA_N",
          "rb_rescue2",
          "ffi_call",
          "FFI_FN",
          "ffi_call",
          "FFI_FN",
          "rbffi_frame_pop",
          "rbffi_save_errno",
          "RTEST",
          "rb_exc_raise",
          "rbffi_NativeValue_ToRuby",
          "rb_define_class_under",
          "rb_global_variable",
          "rb_define_alloc_func",
          "rb_define_method",
          "rb_define_method"
        ],
        "ms": {
          "text": {
            "digit_ratio": 0.01,
            "space_count": 1917.0,
            "total_lines": 304.0,
            "char_entropy": 5.17,
            "unique_chars": 88.0,
            "import_density": 32.57,
            "string_density": 0.27,
            "avg_line_length": 32.66,
            "high_byte_ratio": 0.0,
            "max_line_length": 125.0,
            "non_ascii_ratio": 0.0,
            "empty_line_ratio": 0.16,
            "last_line_length": 1.0,
            "most_common_char": "e",
            "whitespace_ratio": 0.22,
            "most_common_ratio": 0.05,
            "identifier_density": 1.31,
            "line_length_stddev": 28.03,
            "normalized_import_count": 5.68,
            "normalized_string_count": 4.65,
            "repeated_char_sequences": 29.0,
            "suspicious_comment_ratio": 0.25,
            "max_inline_whitespace_run": 7.0,
            "normalized_function_count": 0.29,
            "trailing_whitespace_lines": 7.0,
            "imports_to_functions_ratio": 19.8,
            "strings_to_functions_ratio": 16.2,
            "suspicious_identifier_ratio": 0.02,
            "normalized_unique_identifiers": 14.06,
            "identifiers_to_functions_ratio": 23.2
          },
          "imports": {
            "total": 99.0,
            "unique_modules": 42.0,
            "third_party_count": 99.0,
            "third_party_ratio": 1.0
          },
          "strings": {
            "total": 81.0,
            "avg_length": 11.84,
            "max_length": 33.0,
            "avg_entropy": 3.04,
            "total_bytes": 959.0,
            "entropy_stddev": 0.57
          },
          "comments": {
            "chars": 2084.0,
            "lines": 36.0,
            "total": 4.0,
            "to_code_ratio": 0.13,
            "high_entropy_comments": 1.0
          },
          "functions": {
            "total": 5.0,
            "length_stddev": 46.11,
            "over_100_lines": 1.0,
            "avg_name_length": 57.0,
            "no_params_count": 5.0,
            "avg_length_lines": 44.0,
            "max_length_lines": 127.0,
            "min_length_lines": 7.0,
            "high_entropy_names": 5.0,
            "density_per_100_lines": 1.64,
            "code_in_functions_ratio": 0.72
          },
          "identifiers": {
            "total": 399.0,
            "avg_length": 11.53,
            "max_length": 31.0,
            "min_length": 1.0,
            "avg_entropy": 2.88,
            "reuse_ratio": 0.29,
            "unique_count": 116.0,
            "length_stddev": 5.58,
            "has_digit_ratio": 0.1,
            "sequential_names": 1.0,
            "single_char_count": 1.0,
            "single_char_ratio": 0.01,
            "high_entropy_count": 17.0,
            "high_entropy_ratio": 0.15,
            "all_lowercase_ratio": 0.42,
            "all_uppercase_ratio": 0.16,
            "numeric_suffix_count": 11.0,
            "keyboard_pattern_names": 1.0,
            "underscore_prefix_count": 1.0
          }
        },
        "ss": [
          [
            1731,
            "\u003csys/param.h\u003e"
          ],
          [
            1761,
            "\u003csys/types.h\u003e"
          ],
          [
            1785,
            "\u003cstdio.h\u003e"
          ],
          [
            1822,
            "\u003cstdint.h\u003e"
          ],
          [
            1843,
            "\u003cstdbool.h\u003e"
          ],
          [
            1871,
            "win32/stdbool.h"
          ],
          [
            1872,
            "win32/stdbool.h"
          ],
          [
            1899,
            "win32/stdint.h"
          ],
          [
            1900,
            "win32/stdint.h"
          ],
          [
            1932,
            "\u003cruby.h\u003e"
          ],
          [
            1951,
            "\u003cffi.h\u003e"
          ],
          [
            1968,
            "rbffi.h"
          ],
          [
            1969,
            "rbffi.h"
          ],
          [
            1987,
            "compat.h"
          ],
          [
            1988,
            "compat.h"
          ],
          [
            2008,
            "AbstractMemory.h"
          ],
          [
            2009,
            "AbstractMemory.h"
          ],
          [
            2036,
            "Pointer.h"
          ],
          [
            2037,
            "Pointer.h"
          ],
          [
            2057,
            "Types.h"
          ],
          [
            2058,
            "Types.h"
          ],
          [
            2076,
            "Type.h"
          ],
          [
            2077,
            "Type.h"
          ],
          [
            2094,
            "LastError.h"
          ],
          [
            2095,
            "LastError.h"
          ],
          [
            2117,
            "MethodHandle.h"
          ],
          [
            2118,
            "MethodHandle.h"
          ],
          [
            2143,
            "Call.h"
          ],
          [
            2144,
            "Call.h"
          ],
          [
            2161,
            "Thread.h"
          ],
          [
            2162,
            "Thread.h"
          ],
          [
            3529,
            "convention"
          ],
          [
            3530,
            "convention"
          ],
          [
            3662,
            "enums"
          ],
          [
            3663,
            "enums"
          ],
          [
            3872,
            "blocking"
          ],
          [
            3873,
            "blocking"
          ],
          [
            3968,
            "to_s"
          ],
          [
            3969,
            "to_s"
          ],
          [
            4069,
            "stdcall"
          ],
          [
            4070,
            "stdcall"
          ],
          [
            4344,
            "inspect"
          ],
          [
            4345,
            "inspect"
          ],
          [
            4398,
            "Invalid return type (%s)"
          ],
          [
            4399,
            "Invalid return type (%s)"
          ],
          [
            4882,
            "inspect"
          ],
          [
            4883,
            "inspect"
          ],
          [
            4940,
            "Invalid parameter type (%s)"
          ],
          [
            4941,
            "Invalid parameter type (%s)"
          ],
          [
            5263,
            "@fixed"
          ],
          [
            5264,
            "@fixed"
          ],
          [
            5301,
            "@type_map"
          ],
          [
            5302,
            "@type_map"
          ],
          [
            5353,
            "type_map"
          ],
          [
            5354,
            "type_map"
          ],
          [
            6492,
            "wrong type.  Expected (FFI::Type)"
          ],
          [
            6493,
            "wrong type.  Expected (FFI::Type)"
          ],
          [
            6797,
            "INT32"
          ],
          [
            6798,
            "INT32"
          ],
          [
            7053,
            "UINT32"
          ],
          [
            7054,
            "UINT32"
          ],
          [
            7261,
            "DOUBLE"
          ],
          [
            7262,
            "DOUBLE"
          ],
          [
            7557,
            "Invalid parameter type #%x"
          ],
          [
            7558,
            "Invalid parameter type #%x"
          ],
          [
            7798,
            "Invalid return type"
          ],
          [
            7799,
            "Invalid return type"
          ],
          [
            7928,
            "@fixed"
          ],
          [
            7929,
            "@fixed"
          ],
          [
            8269,
            "Invalid ABI specified"
          ],
          [
            8270,
            "Invalid ABI specified"
          ],
          [
            8360,
            "Invalid argument type specified"
          ],
          [
            8361,
            "Invalid argument type specified"
          ],
          [
            8488,
            "Unknown FFI error"
          ],
          [
            8489,
            "Unknown FFI error"
          ],
          [
            9927,
            "VariadicInvoker"
          ],
          [
            9928,
            "VariadicInvoker"
          ],
          [
            10118,
            "initialize"
          ],
          [
            10119,
            "initialize"
          ],
          [
            10200,
            "invoke"
          ],
          [
            10201,
            "invoke"
          ]
        ],
        "sz": 10234,
        "sha": "c82f892d6062b9f0f4da59697a4418089b3b36f1e8a4adc951d18929333a7aa4",
        "path": "/data/samples/good/rubygems/ffi-1.9.21/ext/ffi_c/Variadic.c",
        "type": "c"
      }
    ],
    "tv": "13343"
  }
}