Esempio n. 1
0
File: jv.c Progetto: fblondiau/jq
static int jvp_array_equal(jv a, jv b) {
  if (jvp_array_length(a) != jvp_array_length(b)) 
    return 0;
  if (jvp_array_ptr(a) == jvp_array_ptr(b) &&
      jvp_array_offset(a) == jvp_array_offset(b)) 
    return 1;
  for (int i=0; i<jvp_array_length(a); i++) {
    if (!jv_equal(jv_copy(*jvp_array_read(a, i)), 
                  jv_copy(*jvp_array_read(b, i))))
      return 0;
  }
  return 1;
}
Esempio n. 2
0
File: jv.c Progetto: CoolCloud/jq
static int jvp_array_equal(jv_nontrivial* a, jv_nontrivial* b) {
  if (jvp_array_length(a) != jvp_array_length(b)) 
    return 0;
  if (jvp_array_ptr(a) == jvp_array_ptr(b) &&
      a->i[0] == b->i[0]) 
    return 1;
  for (int i=0; i<jvp_array_length(a); i++) {
    if (!jv_equal(jv_copy(*jvp_array_read(a, i)), 
                  jv_copy(*jvp_array_read(b,i))))
      return 0;
  }
  return 1;
}
Esempio n. 3
0
File: jv.c Progetto: fblondiau/jq
jv jv_array_get(jv j, int idx) {
  assert(jv_get_kind(j) == JV_KIND_ARRAY);
  jv* slot = jvp_array_read(j, idx);
  jv val;
  if (slot) {
    val = jv_copy(*slot);
  } else {
    val = jv_invalid();
  }
  jv_free(j);
  return val;
}