C - 复制整数

C - 复制整数

问题描述:

所以我使用jansson库,我想设置一个值: json_object_set_new(event,“error_code”,json_integer(response-> error_code));C - 复制整数

问题是,我需要freeresponse结构,但仍然使用我在json_object_set_new中设置的值。

我应该从response->error_code复制价值,我该怎么做?

一些背景:

plugin_response: { 
    if(!response->message && response->error_code == 0) { 
      response->error_code = JANUS_AUDIOBRIDGE_ERROR_UNKNOWN_ERROR; 
     if(response->error_cause == NULL) { 
       response->error_cause = g_strdup_printf("%s", "Invalid response"); 
     } 
    } 

     json_t *event = json_object(); 
     if(!response->message && response->error_code != 0) { 
      /* Prepare JSON error event */ 
      json_object_set_new(event, "audiobridge", json_string("event")); 
      json_object_set_new(event, "error_code", json_integer(response->error_code)); 
      json_object_set_new(event, "error", json_string(response->error_cause)); 
     } else { 
      event = json_deep_copy(response->message); 
    } 

     if(root != NULL) 
      json_decref(root); 
     if(jsep != NULL) 
      json_decref(jsep); 
     g_free(transaction); 
     g_free(response); 



return janus_plugin_result_new(JANUS_PLUGIN_OK, NULL, event); 
} 

编辑:我也使用GLib的,所以如果有此一记漂亮的方法,我洗耳恭听。

Okey,我读了这个This article,我明白了。我不需要复制我传递给json_integer()的整数,因为它不是一个指针,并且与struct整数完全隔离。