You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2006/12/14 07:50:04 UTC
svn commit: r487015 - /harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
Author: varlax
Date: Wed Dec 13 22:50:04 2006
New Revision: 487015
URL: http://svn.apache.org/viewvc?view=rev&rev=487015
Log:
Fixed vmi properties handling as agreed on dev list.
Tested on SUSE9
Modified:
harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp?view=diff&rev=487015&r1=487014&r2=487015
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp Wed Dec 13 22:50:04 2006
@@ -147,26 +147,17 @@
GetSystemProperty(VMInterface *vmi, char *key, char **valuePtr)
{
char* value = get_property(key, JAVA_PROPERTIES);
- if (NULL != value)
- {
- *valuePtr = strdup(value);
- destroy_property_value(value);
- return VMI_ERROR_NONE;
- }
- else
- {
- *valuePtr = NULL;
- return VMI_ERROR_NOT_FOUND;
- }
+ *valuePtr = value ? strdup(value) : NULL;
+ destroy_property_value(value);
+ return VMI_ERROR_NONE;
}
vmiError JNICALL
SetSystemProperty(VMInterface *vmi, char *key, char *value)
{
-
- /*
- * The possible implemenation might be:
- */
+ if (!value || !key) {
+ return VMI_ERROR_ILLEGAL_ARG;
+ }
set_property(key, value, JAVA_PROPERTIES);
return VMI_ERROR_NONE;
}
@@ -193,8 +184,14 @@
while(keys[count] != NULL) {
char* value = get_property(keys[count], JAVA_PROPERTIES);
- iterator((char*)strdup(keys[count]), (char*)strdup(value), userData);
- destroy_property_value(value);
+ /*
+ * FIXME: possible inconsistency between iterator and
+ * properties count.
+ */
+ if (value) {
+ iterator((char*)strdup(keys[count]), (char*)strdup(value), userData);
+ destroy_property_value(value);
+ }
count++;
}
destroy_properties_keys(keys);
Re: svn commit: r487015 - /harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
Posted by Alexey Varlamov <al...@gmail.com>.
2006/12/14, Geir Magnusson Jr. <ge...@pobox.com>:
> (and the following applies to r487009)
>
> I think you jumped the gun here...
>
> 1) This wasn't agreed on dev list. Clearly there was some consensus,
> but I think that you assumed it to fast... it was only a few hours? I
> actually am challenging the group to tell me why (key, NULL) is a bad idea.
>
> 2) This requires change in the VM (obviously). While J9 isn't our VM,
> it's really important to the project to have it working and available
> for us, so this change had to be coordinated - at least discussed - with
> the community members from IBM.
Geir, I replied on the dedicated thread - let's abandon this one.
>
>
>
> varlax@apache.org wrote:
> > Author: varlax
> > Date: Wed Dec 13 22:50:04 2006
> > New Revision: 487015
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=487015
> > Log:
> > Fixed vmi properties handling as agreed on dev list.
> > Tested on SUSE9
> >
> > Modified:
> > harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
> >
> > Modified: harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
> > URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp?view=diff&rev=487015&r1=487014&r2=487015
> > ==============================================================================
> > --- harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp (original)
> > +++ harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp Wed Dec 13 22:50:04 2006
> > @@ -147,26 +147,17 @@
> > GetSystemProperty(VMInterface *vmi, char *key, char **valuePtr)
> > {
> > char* value = get_property(key, JAVA_PROPERTIES);
> > - if (NULL != value)
> > - {
> > - *valuePtr = strdup(value);
> > - destroy_property_value(value);
> > - return VMI_ERROR_NONE;
> > - }
> > - else
> > - {
> > - *valuePtr = NULL;
> > - return VMI_ERROR_NOT_FOUND;
> > - }
> > + *valuePtr = value ? strdup(value) : NULL;
> > + destroy_property_value(value);
> > + return VMI_ERROR_NONE;
> > }
> >
> > vmiError JNICALL
> > SetSystemProperty(VMInterface *vmi, char *key, char *value)
> > {
> > -
> > - /*
> > - * The possible implemenation might be:
> > - */
> > + if (!value || !key) {
> > + return VMI_ERROR_ILLEGAL_ARG;
> > + }
> > set_property(key, value, JAVA_PROPERTIES);
> > return VMI_ERROR_NONE;
> > }
> > @@ -193,8 +184,14 @@
> >
> > while(keys[count] != NULL) {
> > char* value = get_property(keys[count], JAVA_PROPERTIES);
> > - iterator((char*)strdup(keys[count]), (char*)strdup(value), userData);
> > - destroy_property_value(value);
> > + /*
> > + * FIXME: possible inconsistency between iterator and
> > + * properties count.
> > + */
> > + if (value) {
> > + iterator((char*)strdup(keys[count]), (char*)strdup(value), userData);
> > + destroy_property_value(value);
> > + }
> > count++;
> > }
> > destroy_properties_keys(keys);
> >
> >
>
Re: svn commit: r487015 - /harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
(and the following applies to r487009)
I think you jumped the gun here...
1) This wasn't agreed on dev list. Clearly there was some consensus,
but I think that you assumed it to fast... it was only a few hours? I
actually am challenging the group to tell me why (key, NULL) is a bad idea.
2) This requires change in the VM (obviously). While J9 isn't our VM,
it's really important to the project to have it working and available
for us, so this change had to be coordinated - at least discussed - with
the community members from IBM.
varlax@apache.org wrote:
> Author: varlax
> Date: Wed Dec 13 22:50:04 2006
> New Revision: 487015
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=487015
> Log:
> Fixed vmi properties handling as agreed on dev list.
> Tested on SUSE9
>
> Modified:
> harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
>
> Modified: harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp
> URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp?view=diff&rev=487015&r1=487014&r2=487015
> ==============================================================================
> --- harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp (original)
> +++ harmony/enhanced/drlvm/trunk/vm/vmi/src/vmi.cpp Wed Dec 13 22:50:04 2006
> @@ -147,26 +147,17 @@
> GetSystemProperty(VMInterface *vmi, char *key, char **valuePtr)
> {
> char* value = get_property(key, JAVA_PROPERTIES);
> - if (NULL != value)
> - {
> - *valuePtr = strdup(value);
> - destroy_property_value(value);
> - return VMI_ERROR_NONE;
> - }
> - else
> - {
> - *valuePtr = NULL;
> - return VMI_ERROR_NOT_FOUND;
> - }
> + *valuePtr = value ? strdup(value) : NULL;
> + destroy_property_value(value);
> + return VMI_ERROR_NONE;
> }
>
> vmiError JNICALL
> SetSystemProperty(VMInterface *vmi, char *key, char *value)
> {
> -
> - /*
> - * The possible implemenation might be:
> - */
> + if (!value || !key) {
> + return VMI_ERROR_ILLEGAL_ARG;
> + }
> set_property(key, value, JAVA_PROPERTIES);
> return VMI_ERROR_NONE;
> }
> @@ -193,8 +184,14 @@
>
> while(keys[count] != NULL) {
> char* value = get_property(keys[count], JAVA_PROPERTIES);
> - iterator((char*)strdup(keys[count]), (char*)strdup(value), userData);
> - destroy_property_value(value);
> + /*
> + * FIXME: possible inconsistency between iterator and
> + * properties count.
> + */
> + if (value) {
> + iterator((char*)strdup(keys[count]), (char*)strdup(value), userData);
> + destroy_property_value(value);
> + }
> count++;
> }
> destroy_properties_keys(keys);
>
>