axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Senaka Fernando (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2C-786) axiom_element_set_text() and other functions that do not make use of an axiom_element_t* object in its parameters
Date Sun, 02 Dec 2007 19:13:43 GMT

    [ https://issues.apache.org/jira/browse/AXIS2C-786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12547654
] 

Senaka Fernando commented on AXIS2C-786:
----------------------------------------

Hi Edward,

Aren't you setting the text of an axiom_element? If you do so, you in fact should have a reference
of type axiom_element_t *. Or if you really need to you can do this.

axiom_element_t *my_element = (axiom_element_t *)axiom_node_get_data_element(my_node, env);

This doesn't involve any memory allocation. Also, the reason for casting is axiom_node_get_data_element()
returns a (void *). There is a mechanism to know whether in fact you do have a node which
is a AXIOM_ELEMENT. That is by this test:

(axiom_node_get_node_type(my_node, env) == AXIOM_ELEMENT).

However, this additional parameter is included just for consistency. In theory what should
be removed is (axiom_node_t *) and you should be able to use the (axiom_element_t *) to retrieve
the (axiom_node_t *). But that doesn't seem to be happening. We simply retrieve the element
from the node, and therefore you can get the (axiom_element_t *) by the method shown above.

I guess it is better that you stick to this method. Because, in the future, if we are ever
going to use (axiom_element_t *) within this method, we expect that you obtain it in this
method. Somebody please correct me if I'm wrong.

Hope this helps.

Regards,
Senaka

> axiom_element_set_text() and other functions that do not make use of an axiom_element_t*
object in its parameters
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2C-786
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-786
>             Project: Axis2-C
>          Issue Type: Improvement
>          Components: xml/soap
>    Affects Versions: Current (Nightly)
>            Reporter: Edward Liu
>            Priority: Minor
>             Fix For: Current (Nightly)
>
>
> There are some functions, such as axiom_element_set_text(), that take in an axiom_element_t*
object as one of its parameters, but does not make use of it (after viewing the Axis2-C source
code).  It is pretty inconvenient and unnecessary (in my opinion) to create an axiom_element_t*
object, pass it into axiom_element_set_text(), and then free it, without using this object
anywhere else except as an argument to a function that doesn't even use the object itself.
 I think that this creation and freeing of an axiom_element_t* object could be avoided.  After
talking with one of the developers, it is recommended that the axiom_element_t* argument be
removed from those functions that have it as a parameter but make no use of it.  I believe
that passing NULL into these affected functions is a temporary workaround, not a permanent
solution, for this issue.  Thanks!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message