I knew it was too easy. I'm still not clear on what you want, though. Are modifying the VM, or writing a C library?

-Justin

Lee McColl Sylvester wrote:
Hey Justin,

That's awesome and I thank you for your quick reply. However, what I need is to be able to get the field names within the C binary, not the neko code. Do you know how I might do that? What I was hoping for was an undocumented method called something like "value* val_object_fields( obj )" or somesuch (which I know doesn't exist because I've trawled the C sources many times, but I live in hope).

Please don't think I'm ungrateful, though :-)  I am, really.

Best,
Lee




Justin Collins wrote:
Lee McColl Sylvester wrote:
Hey list,

I need to perform a conversion from a Neko object to a different vm object instance, but to do so requires knowing what fields an object contains. Is it possible to retrieve an array of field names that I can iterate over to perform the conversion?

Thanks,
Lee




If the hashed names are alright, you can use $objfields(). Otherwise, it just happens that I have such code sitting right here to return an array of strings:

get_field_names = function(object) {
//$objfields returns an array of integers, which are the hashed names of the fields
   var field_list = $objfields(object)
   //Number of fields in the array
   var num_fields = $asize(field_list)
   //Empty array to populate with field names
   var field_names = $amake(num_fields)
     //Index variable
   var i = 0

   //Loop over the fields
   while(i < num_fields) {
       //Convert integer field to string and store in array
       field_names[i] = $field(field_list[i])

       i = i + 1
   }

   return field_names
}



-Justin





--
Neko : One VM to run them all
(http://nekovm.org)

Reply via email to