harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ronald Servant (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-3563) modify VMI to hide internal VM data structures exposed by getZipCachePool() VMI function
Date Tue, 03 Apr 2007 21:56:32 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-3563?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Ronald Servant updated HARMONY-3563:
------------------------------------

    Attachment: zipvmi_03042007_patch.txt

This patch zipvmi_03042007_patch.txt solves the problem by changing the VMI to replace getZipCachePool()
with getZipFunctions().

By moving to a function based API, instead of a data structure based API we remove the exposure
of internal data structures.  This allows VM vendors to continue to innovate while maintaining
a stable VMI.

The patch also provides a reference implementation that can be used VMs.

> modify VMI to hide internal VM data structures exposed by getZipCachePool() VMI function
> ----------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3563
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3563
>             Project: Harmony
>          Issue Type: Improvement
>          Components: Classlib
>            Reporter: Ronald Servant
>         Attachments: zipvmi_03042007_patch.txt
>
>
> When the VMI was orginially created the function getZipCachePool() was added.
> This function allows the classlib and the VM to share the same cache of open zip files.
Providing a performance improvement when handling zip files.
> This function, getZipCachePool(), returns a pointer to a HyZipCachePool.   This structure
is not an opaque structure, it is fully defined and visible.  
> struct HyZipCachePool
> {
>   HyPool *pool;
>   HyZipCache *desiredCache;
>   I_64 zipTimeStamp;
>   char const *zipFileName;
>   IDATA zipFileNameLength;
>   IDATA zipFileSize;
>   MUTEX mutex;
> };
> If a VM uses any of these structures internally for anything other than the HyZipCachePool
implementation, then the VM can never change the shape of those structures.  If it does, it
will result in a runtime crash or compile time error, depending on how the VM is built and
deployed.
> Two prime examples of structures that may be changed by the internal implementation of
the VM are HyPool and MUTEX.

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


Mime
View raw message