Geir Magnusson Jr wrote:
> 
> Tim Ellison wrote:
>> Jimmy, Jing Lv wrote:
>>> Geir Magnusson Jr wrote:
>>>> Why would I use
>>>>
>>>> portLib->mem_allocate_memory(portLib....)
>>>>
>>>> over just calling
>>>>
>>>> hymem_allocate_memory(portlib, ....)
>>>>
>>> Hi Geir:
>>>
>>>    Not sure if the later is "hymem_allocate_memory(int size)"? If so,
>>> they are the same indeed, and the later is the a macro. Everytime before
>>> we use the macro, call "PORT_ACCESS_FROM_ENV (env)"
>>>    e.g.:
>>>    somemethod(JNIEnv * env, ...){
>>>     PORT_ACCESS_FROM_ENV (env);
>>>     ...
>>>     hymem_allocate_memory(sizeof(something));
>>>     ...
>>>    }
>>>
>>>    And they are defined in hyport.h. :)
>> I think the second style is more readable, so would advocate using that.
>>
>> As you say, the readable macros are set up using the PORT_ACCESS_FROM_*
>> directives, so that you can use them if you are passed different types.
>>
>> PORT_ACCESS_FROM_ENV(JNIEnv)      - you have a JNIEnv struct ptr
>> PORT_ACCESS_FROM_JAVAVM(JavaVM)   - you have a JavaVM struct ptr
>> PORT_ACCESS_FROM_PORT(portlib)    - you have a portlib ptr
> 
> Except...
> 
> 1) They aren't as Jimmy suggests, at least the one's I'm looking at.
> 
> 2) the implementation in hymem.c just calls malloc()
> 
> I'm confused.

Hopefully you are no longer confused after Oliver's explanation.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to