コード例 #1
0
ファイル: msgpack_rpc.c プロジェクト: thorbenk/neovim
void msgpack_rpc_free_stringarray(StringArray value) {
  for (uint32_t i = 0; i < value.size; i++) {
    msgpack_rpc_free_string(value.items[i]);
  }

  free(value.items);
}
コード例 #2
0
ファイル: msgpack_rpc.c プロジェクト: thorbenk/neovim
void msgpack_rpc_free_object(Object value)
{
  switch (value.type) {
    case kObjectTypeNil:
    case kObjectTypeBool:
    case kObjectTypeInt:
    case kObjectTypeFloat:
      break;

    case kObjectTypeString:
      msgpack_rpc_free_string(value.data.string);
      break;

    case kObjectTypeArray:
      msgpack_rpc_free_array(value.data.array);
      break;

    case kObjectTypeDictionary:
      msgpack_rpc_free_dictionary(value.data.dictionary);
      break;

    default:
      abort();
  }
}
コード例 #3
0
void msgpack_rpc_free_dictionary(Dictionary value)
{
  for (uint32_t i = 0; i < value.size; i++) {
    msgpack_rpc_free_string(value.items[i].key);
    msgpack_rpc_free_object(value.items[i].value);
  }

  free(value.items);
}
コード例 #4
0
void msgpack_rpc_free_object(Object value)
{
  switch (value.type) {
    case kObjectTypeNil:
    case kObjectTypeBoolean:
    case kObjectTypeInteger:
    case kObjectTypeFloat:
    case kObjectTypePosition:
    case kObjectTypeBuffer:
    case kObjectTypeWindow:
    case kObjectTypeTabpage:
      break;

    case kObjectTypeString:
      msgpack_rpc_free_string(value.data.string);
      break;

    case kObjectTypeArray:
      msgpack_rpc_free_array(value.data.array);
      break;

    case kObjectTypeStringArray:
      msgpack_rpc_free_stringarray(value.data.stringarray);
      break;

    case kObjectTypeBufferArray:
      msgpack_rpc_free_bufferarray(value.data.bufferarray);
      break;

    case kObjectTypeWindowArray:
      msgpack_rpc_free_windowarray(value.data.windowarray);
      break;

    case kObjectTypeTabpageArray:
      msgpack_rpc_free_tabpagearray(value.data.tabpagearray);
      break;

    case kObjectTypeDictionary:
      msgpack_rpc_free_dictionary(value.data.dictionary);
      break;

    default:
      abort();
  }
}