Dynamic code generation and memory management for component object model data constructs

US2016232002A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016232002-A1
Application numberUS-201615133998-A
CountryUS
Kind codeA1
Filing dateApr 20, 2016
Priority dateMay 19, 2011
Publication dateAug 11, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computing device, comprising: a memory having computer executable components stored thereon; and a processor communicatively coupled to the memory, the processor configured to facilitate execution of the computer executable components, the computer executable components comprising: a first component configured 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; 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; 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 and proceed to reclaim the memory associated with the script code object. 2 . The computing device of claim 1 , wherein the request, the unwind and the proceed adhere to a two-phase commit protocol with the request corresponding to a prepare phase, and the unwind and proceed corresponding to a commit phase. 3 . The computing device of claim 1 , wherein the initiate the request includes initiating a request to reclaim memory associated with the script code object having a pointer to the native code object. 4 . The computing device of claim 1 , wherein the unwind the dependency includes releasing the native code object. 5 . The computing device of claim 1 , wherein the unwind the dependency includes decrementing a reference count associated with the native code object. 6 . The computing device of claim 1 , wherein the first component is further configured to check references of the native code object. 7 . The computing device of claim 1 , wherein the first component is further configured to check references of the native code object including determining an additional dependency of the native code object that prevents the confirmation from the native code object. 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; 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; 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 and proceeding to reclaim the memory associated with the script code object. 9 . The method of claim 8 , wherein the requesting, the unwinding and the proceeding adhere to a two-phase commit protocol with the requesting corresponding to a prepare phase, and the unwinding and proceeding corresponding to a commit phase. 10 . The method of claim 8 , wherein the initiating the request includes initiating a request to reclaim memory associated with the script code object having a pointer to the native code object. 11 . The method of claim 8 , wherein the unwinding the dependency includes releasing the native code object. 12 . The method of claim 8 , wherein the unwinding the dependency includes decrementing a reference count associated with the native code object. 13 . The method of claim 8 , further comprising: checking references of the native code object. 14 . The method of claim 8 , further comprising: checking references of the native code object including determining an additional dependency of the native code object that prevents the confirmation from the native code object. 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; 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; 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 and proceeding to reclaim the memory associated with the script code object. 16 . The computer-readable storage medium of claim 15 , wherein the requesting, the unwinding and the proceeding adhere to a two-phase commit protocol with the requesting corresponding to a prepare phase, and the unwinding and proceeding corresponding to a commit phase. 17 . The computer-readable storage medium of claim 15 , wherein the initiating the request includes initiating a request to reclaim memory associated with the script code object having a pointer to the native code object. 18 . The computer-readable storage medium of claim 15 , wherein the unwinding the dependency includes releasing the native code object. 19 . The computer-readable storage medium of claim 15 , wherein the unwinding the dependency includes decrementing a reference count associated with the native code object. 20 . The computer-readable storage medium of claim 15 , further comprising: checking references of the native code object including determining an additional dependency of the native code object that prevents the confirmation from the native code object.

Assignees

Inventors

Classifications

  • Creation or generation of source code · CPC title

  • Object-oriented method invocation or resolution · CPC title

  • G06F9/5022Primary

    Mechanisms to release resources · CPC title

  • G06F8/75Primary

    Structural analysis for program understanding · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016232002A1 cover?
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 r…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/5022. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 11 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).