Thanks for the answers - unfortunately it raises more questions...

1. "deep copy" - should this mean to really copy something (by allocating new memory) and not just let a pointer to point to a certain piece of memory?

2. The function axis2_getStringResponse_set_return() is generated. The generated function can be seen here.

/**
  * setter for return
*/
axis2_status_t AXIS2_CALL
axis2_getStringResponse_set_return(
       axis2_getStringResponse_t* getStringResponse,
       const axutil_env_t *env,
       axis2_char_t*  param_return)
{

  AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
  if(!getStringResponse)
  {
      return AXIS2_FAILURE;
  }
  getStringResponse-> attrib_return = param_return;
  return AXIS2_SUCCESS;
}

The assignment of param_return does not look like a "deep copy", right? As far as I understood, the only files that have to be touched after generation are the axis2_skel_<SERVICE>.c files for the business logic...

3. Do I understand correctly, nobody else frees the memory if not the user does it? Cannot imagine that - all the generated services would be giantic memory holes...


4. Does someone have a reference implementation of a "deep copy" to look at?

Thanks,
Flori


On Tue, 19 Jun 2007 07:51:31 +0200, Samisa Abeysinghe <[EMAIL PROTECTED]> wrote:

Shailesh Srivastava wrote:
Once the response string is formed, you need to free the local memory
allocated to "retVal".

If axis2_getStringResponse_set_return method does a deep copy you can free retVal. This should ideally be freed by axis2_getStringResponse_free method, that is to be called by user.

Samisa...

[...]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to