xmlrpc_value * xmlrpc_datetime_new(xmlrpc_env *const envP, xmlrpc_datetime const dt) { xmlrpc_value *valP; const char **readBufferP; MALLOCVAR(readBufferP); if (!readBufferP) xmlrpc_faultf(envP, "Couldn't get memory for the cache part of the " "XML-RPC datetime value object"); else { *readBufferP = NULL; xmlrpc_createXmlrpcValue(envP, &valP); if (!envP->fault_occurred) { valP->_type = XMLRPC_TYPE_DATETIME; valP->_value.dt = dt; valP->_cache = readBufferP; } if (envP->fault_occurred) free(readBufferP); } return valP; }
xmlrpc_value * xmlrpc_struct_new(xmlrpc_env * const envP) { xmlrpc_value * valP; XMLRPC_ASSERT_ENV_OK(envP); xmlrpc_createXmlrpcValue(envP, &valP); if (!envP->fault_occurred) { valP->_type = XMLRPC_TYPE_STRUCT; XMLRPC_MEMBLOCK_INIT(_struct_member, envP, &valP->_block, 0); if (envP->fault_occurred) free(valP); } return valP; }