Dynamic code generation and memory management for component object model data constructs
First Claim
1. A computing device, comprising:
- a processor communicatively coupled to a memory, the memory storing computing executable instructions that when executed cause the processor to;
initiate a request to reclaim memory associated with a script code object with a dependency to a native code object represented in native code;
in a first phase, request the script code object and the native code object to prepare for the request to reclaim the memory associated with the script code object; and
in a second phase, only in response to receiving confirmation from the script code object that the script code object is prepared for the request and in response to receiving confirmation from the native object that the native object is prepared for the request, unwind the dependency to the native code object represented in native code and proceed to reclaim the memory associated with the script code object.
2 Assignments
0 Petitions
Accused Products
Abstract
Dynamic code generation and memory management techniques are provided for component object model (COM) objects with corresponding representations in script code and native code. A browser component can receive script code including the code representing the COM object and a marshaling component is provided that marshals, based on a request for native code representing the COM object, the code representing the COM object to the native code based on a pre-constructed intermediate data structure. The pre-constructed intermediate data structure, such as a virtual table, is pre-constructed based on a dynamic type representation associated with a prototype of the COM object and cached for re-use by the marshaling component. Other embodiments provide finalizer support for memory management of COM objects having script and native world representations including an implementation of a two-phase commit protocol that enables efficient and conservative recycling of objects and associated memory.
162 Citations
20 Claims
-
1. A computing device, comprising:
a processor communicatively coupled to a memory, the memory storing computing executable instructions that when executed cause the processor to; initiate a request to reclaim memory associated with a script code object with a dependency to a native code object represented in native code; in a first phase, request the script code object and the native code object to prepare for the request to reclaim the memory associated with the script code object; and in a second phase, only in response to receiving confirmation from the script code object that the script code object is prepared for the request and in response to receiving confirmation from the native object that the native object is prepared for the request, unwind the dependency to the native code object represented in native code and proceed to reclaim the memory associated with the script code object. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method, comprising:
-
initiating a request to reclaim memory associated with a script code object with a dependency to a native code object represented in native code; in a first phase, requesting the script code object and the native code object to prepare for the request to reclaim the memory associated with the script code object; and in a second phase, only in response to receiving confirmation from the script code object that the script code object is prepared for the request and in response to receiving confirmation from the native object that the native object is prepared for the request, unwinding the dependency to the native code object represented in native code and proceeding to reclaim the memory associated with the script code object. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage medium comprising computer-readable instructions that, in response to execution by a computing system, cause the computing device including at least one processor to perform operations, comprising:
-
initiating a request to reclaim memory associated with a script code object with a dependency to a native code object represented in native code; in a first phase, requesting the script code object and the native code object to prepare for the request to reclaim the memory associated with the script code object; and in a second phase, only in response to receiving confirmation from the script code object that the script code object is prepared for the request and in response to receiving confirmation from the native object that the native object is prepared for the request, unwinding the dependency to the native code object represented in native code and proceeding to reclaim the memory associated with the script code object. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification