```rust
#[no_mangle]

pub unsafe extern "C" fn json_object_get_int64(mut jso: *const json_object) -> int64_t {
    let mut cint: int64_t = 0;
    if jso.is_null() {
        return 0 as int64_t;
    }
    match (*jso).o_type as ::core::ffi::c_uint {
        3 => return (*jso).o.c_int64,
        2 => {
            if (*jso).o.c_double >= INT64_MAX as ::core::ffi::c_double {
                return INT64_MAX as int64_t;
            }
            if (*jso).o.c_double <= INT64_MIN as ::core::ffi::c_double {
                return INT64_MIN as int64_t;
            }
            return (*jso).o.c_double as int64_t;
        }
        1 => return (*jso).o.c_boolean as int64_t,
        6 => {
            if json_parse_int64(get_string_component(jso), &raw mut cint) == 0 as ::core::ffi::c_int
            {
                return cint;
            }
            /* FALLTHRU */
        }
        _ => {}
    }
    return 0 as int64_t;
}
```