Patch for Review: JvGetStringUTF and JvTempCString

Bryce McKinlay bryce@mckinlay.net.nz
Sun Aug 10 03:41:00 GMT 2003


On Sunday, Aug 10, 2003, at 14:50 Pacific/Auckland, Mohan Embar wrote:

> Hi Tom,
>
>> Mohan> 	* gcj/cni.h: Added function JvGetStringUTF (puts and null
>> Mohan> 	terminates a jstring into a character buffer) and class
>> Mohan> 	JvTempCString (helper class for getting a temporary C string
>> Mohan> 	from a jstring)
>>
>> Sorry for yet another go around on this...
>>
>> I'm not ready to put this class in cni.h yet.  How about jvm.h?
>
> I coded this all up, but jvm.h is internal to libgcj and doesn't
> end up in the final installation :(. This would mean that this helper
> class wouldn't be usable anywhere other than within libgcj.

Hi Mohan,

Sorry if I missed earlier discussion on this. What is the rationale for 
adding these? I don't like JvGetStringUTF because it is unsafe - it 
knows nothing about the size of the buffer it is writing into. I think 
a variant which accepts the buffer size as an argument, and makes sure 
not to overrun it, would be better.

As for JvTempCString, do you have an example of when this is needed? 
What is wrong with, in client code, simply using JvGetStringUTF into a 
stack allocated buffer? I think it is better to keep CNI simple unless 
there is a compelling reason to have this.

> What about gcj/javaprims.h?

gcj/cni.h is the place to put things which are to be part of the public 
CNI interface.

Regards

Bryce.



More information about the Java-patches mailing list