One embodiment of the present invention provides a system that facilitates
automated isolation of native code within a computer program that has been
compiled to a platform-independent code. The system operates by receiving
a library containing a native code sub-routine that provides a service to
the computer program. The system analyzes the library to determine the
symbol name for the native code sub-routine. A proxy sub-routine is
generated for each native code sub-routine exported by the native library
that forms a link to the native code sub-routine. This proxy sub-routine
is placed into a new library using the original name of the native code
sub-routine. The system runs the native code sub-routine in one process,
and executes the platform-independent code in a separate process. The
system invokes the native code sub-routine in the first process by calling
the proxy sub-routine from the platform-independent code in the second
process.
Uma incorporação da invenção atual fornece um sistema que facilite a isolação automatizada do código nativo dentro de um programa de computador que seja compilado a um código plataforma-independente. O sistema opera-se recebendo uma biblioteca que contem um sub-routine do código nativo que forneça um serviço ao programa de computador. O sistema analisa a biblioteca para determinar o nome do símbolo para o sub-routine do código nativo. Um sub-routine do proxy é gerado para cada sub-routine do código nativo exportado pela biblioteca nativa que dá forma a uma ligação ao sub-routine do código nativo. Este sub-routine do proxy é colocado em uma biblioteca nova usando o nome original do sub-routine do código nativo. O sistema funciona o sub-routine do código nativo em um processo, e executa o código plataforma-independente em um processo separado. O sistema invoca o sub-routine do código nativo no primeiro processo chamando o sub-routine do proxy do código plataforma-independente no segundo processo.