Show
Ignore:
Timestamp:
05/01/08 13:14:43 (4 years ago)
Author:
rakshasa
Message:

* Fixed EINTR handling in execute command. Patch by anonymous.

* Fixed a couple of memory leaks in xmlrpc.cc. Reported by Novik.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/rtorrent/src/rpc/xmlrpc.cc

    r1050 r1057  
    378378    xmlrpc_value* result = xmlrpc_array_new(env); 
    379379     
    380     for (torrent::Object::list_const_iterator itr = object.as_list().begin(), last = object.as_list().end(); itr != last; itr++) 
    381       xmlrpc_array_append_item(env, result, object_to_xmlrpc(env, *itr)); 
     380    for (torrent::Object::list_const_iterator itr = object.as_list().begin(), last = object.as_list().end(); itr != last; itr++) { 
     381      xmlrpc_value* item = object_to_xmlrpc(env, *itr); 
     382      xmlrpc_array_append_item(env, result, item); 
     383      xmlrpc_DECREF(item); 
     384    } 
    382385 
    383386    return result; 
     
    388391    xmlrpc_value* result = xmlrpc_struct_new(env); 
    389392     
    390     for (torrent::Object::map_const_iterator itr = object.as_map().begin(), last = object.as_map().end(); itr != last; itr++) 
    391       xmlrpc_struct_set_value(env, result, itr->first.c_str(), object_to_xmlrpc(env, itr->second)); 
     393    for (torrent::Object::map_const_iterator itr = object.as_map().begin(), last = object.as_map().end(); itr != last; itr++) { 
     394      xmlrpc_value* item = object_to_xmlrpc(env, itr->second); 
     395      xmlrpc_struct_set_value(env, result, itr->first.c_str(), item); 
     396      xmlrpc_DECREF(item); 
     397    } 
    392398 
    393399    return result;