US6016392A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method for object-oriented programming using dynamic interfaces
Assignee: Hexagon Technology Center GmbH
•
Filing: 1995-11-03
•
Granted: 2000-01-18
•
Expires: 2015-11-03
Abstract
Abstract An apparatus and method for allocating, linking and using blocks of memory to represent a data object in an object-oriented programming environment, particularly COM programming environments. The invention eliminates the conventional viable pointers, reference counters, controlling unknown pointers and other infrastructure overhead from the data objects. This information is instead allocated on a temporary basis only while an object is in use, in object and interface wrappers.
Inventors
- 👤 David A Jordan
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 16:00
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4488
Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
132 words
In a software application in a computer system, a method for allocating memory for a COM-compliant object, the method comprising: maintaining a first static data structure storing information for supported by the computer system, the classes including a class of the COM-complaint object; maintaining a second static data structure storing information for interfaces for each of the classes supported by the computer system, the second static data structure comprising for each interface, a first memory location storing an interface identifier identifying the interface and a second memory location storing a location of a table of functions implementing the interface; and dynamically allocating memory for the COM-compliant object belonging to one of the classes supported by the computer system, without allocating a pointer for each of the interfaces supported by the COM-compliant object.
Claim 2
Dependent Claim
132 words
In a software application in a computer system, a method for allocating memory for a COM-compliant object, the method comprising: maintaining a first static data structure storing information for supported by the computer system, the classes including a class of the COM-complaint object; maintaining a second static data structure storing information for interfaces for each of the classes supported by the computer system, the second static data structure comprising for each interface, a first memory location storing an interface identifier identifying the interface and a second memory location storing a location of a table of functions implementing the interface; and dynamically allocating memory for the COM-compliant object belonging to one of the classes supported by the computer system, without allocating a pointer for each of the interfaces supported by the COM-compliant object.
Claim 3
Dependent Claim
47 words
The method of claim 1 wherein the first static data structure comprises a memory record for each class, the memory record comprising a first memory location storing a class identifier identifying a class and a second memory location storing a location of the second static data structure.
Claim 4
Dependent Claim
26 words
The method of claim 1 wherein the first and second static data structures are created using programming macros stored on storage media on the computer system.
Claim 5
Dependent Claim
31 words
The method of claim 1 further comprising the step of referencing the COM-compliant object for a first time, thereby causing allocation of a first dynamic data structure to provide COM compliance.
Claim 6
Dependent Claim
24 words
The method of claim 4 further comprising ceasing to reference the COM-compliant object thereby dynamically freeing memory allocated for the first dynamic data structure.
Claim 7
Dependent Claim
39 words
The method of claim 4 wherein the step of allocating the first dynamic data structure comprises: allocating an object-oriented programming model infrastructure to the first dynamic data structure; and binding the first dynamic data structure to the COM-compliant object.
Claim 8
Dependent Claim
80 words
The method of claim 4 further comprising: querying the COM-compliant object for a second interface, thereby causing allocation of a second dynamic data structure; traversing the second static data structure to find a memory location of the table of functions implementing the second interface; and if the memory location of the table of functions implementing the second interface is found, storing the memory location of the table of functions in a first memory location of the second dynamic data structure.
Claim 9
Dependent Claim
22 words
The method of claim 6 wherein the binding step comprises associating the first dynamic data structure with the second static data structure.
Claim 10
Dependent Claim
85 words
The method of claim 7 wherein the step of allocating the first dynamic data structure further comprises: allocating a first memory location for storing an address of the COM-compliant object; allocating a second memory location for storing an address of a memory location storing class information for the COM-compliant object in the first static data structure; allocating a third memory location for storing an address of the IUnknown COM-compliant interface; and allocating a fourth memory location for storing a reference count of the COM-compliant object.
Claim 11
Dependent Claim
46 words
The method of claim 7 further comprising the step of returning an address of the second dynamic data structure as the result of querying the COM-compliant object for the second interface if the memory location of the table of functions implementing the second interface is found.
Claim 12
Dependent Claim
22 words
The method of claim 7 further comprising the step of associating the second dynamic data structure with the first dynamic data structure.
Claim 13
Dependent Claim
27 words
The method of claim 7 further comprising the step of emulating invocation of a function from the second interface with a function from the table of functions.
Claim 14
Dependent Claim
62 words
The method of claim 7 wherein the step of allocating the second dynamic data structure further comprises: allocating a second memory location for storing an address of the COM-compliant object; allocating a third memory location for storing an address of the first dynamic data structure; and allocating a fourth memory location for storing a reference count of the second dynamic data structure.
Claim 15
Dependent Claim
24 words
The method of claim 7 further comprising ceasing to reference the second interface thereby dynamically freeing memory allocated for the second dynamic data structure.
Claim 16
Dependent Claim
27 words
The method of claim 8 wherein the associating step causes the first dynamic data structure to implement only one interface stored in the second static data structure.
Claim 17
Dependent Claim
64 words
The method of claim 12 wherein the step of emulating the invocation of the function from the second interface comprises: generating a call frame to emulate the invocation of the function; replacing a pointer to the second dynamic data structure in the call frame with a pointer to the COM-compliant object; and executing the program text of the function from the table of functions.
Claim 18
Dependent Claim
16 words
The method of claim 15 wherein the first dynamic data structure implements an IUnknown COM-compliant interface.
Claim 19
Dependent Claim
142 words
A computer program product for allocating memory for a COM-compliant object, the product comprising: code for maintaining a first static data structure storing information for classes supported by the program product, the classes including a class of the COM-complaint object; code for maintaining a second static data structure storing information for interfaces for each of the classes supported by the program product, wherein the second static data structure comprises for each interface, a first memory location storing an interface identifier identifying the interface and a second memory location storing a location of a table of functions implementing the interface; code for dynamically allocating memory for the COM-compliant object belonging to one of the classes supported by the program product, without allocating a pointer for each of said interfaces supported by the COM-compliant object; and a computer-readable storage medium that stores the codes.
Claim 20
Dependent Claim
142 words
A computer program product for allocating memory for a COM-compliant object, the product comprising: code for maintaining a first static data structure storing information for classes supported by the program product, the classes including a class of the COM-complaint object; code for maintaining a second static data structure storing information for interfaces for each of the classes supported by the program product, wherein the second static data structure comprises for each interface, a first memory location storing an interface identifier identifying the interface and a second memory location storing a location of a table of functions implementing the interface; code for dynamically allocating memory for the COM-compliant object belonging to one of the classes supported by the program product, without allocating a pointer for each of said interfaces supported by the COM-compliant object; and a computer-readable storage medium that stores the codes.
Claim 21
Dependent Claim
32 words
The computer program product of claim 18 further comprising code for referencing the COM-compliant object for a first time, thereby causing allocation of a first dynamic data structure to provide COM compliance.
Claim 22
Dependent Claim
28 words
The computer program product of claim 19 further comprising code for ceasing to reference the COM-compliant object thereby dynamically freeing memory allocated for the first dynamic data structure.
Claim 23
Dependent Claim
51 words
The computer program product of claim 19 further comprising: code for allocating an object-oriented programming model infrastructure to the first dynamic data structure; and code for associating the first dynamic data structure with the second static data structure thereby causing the first dynamic data structure to implement an IUnknown COM-compliant interface.
Claim 24
Dependent Claim
112 words
The computer program product of claim 19 further comprising: code for querying the COM-compliant object for a second interface, thereby causing allocation of a second dynamic data structure; code for traversing the second static data structure to find a memory location of the table of functions implementing the second interface; and if the memory location of the table of functions implementing the second interface is found, code for storing the memory location of the table of functions in a first memory location of the second dynamic data structure and code for returning an address of the second dynamic data structure as the result of querying the COM-compliant object for the second interface.
Claim 25
Dependent Claim
43 words
The computer program product of claim 22 further comprising: code for associating the second dynamic data structure with the first dynamic data structure; and code for emulating invocation of a function from the second interface with a function from the table of functions.
Claim 26
Dependent Claim
28 words
The computer program product of claim 22 further comprising code for ceasing to reference the second interface thereby dynamically freeing memory allocated for the second dynamic data structure.
Claim 27
Dependent Claim
68 words
The computer program product of claim 23 wherein the code for emulating invocation of a function further comprises: code for generating a call frame to emulate the invocation of the function; code for replacing a pointer to the second dynamic data structure in the call frame with a pointer to the COM-compliant object; and code for executing the program text of the function from the table of functions.
References Cited (Backward Citations)
US5297284A
Cited
US5581760A
Cited
US5682536A
Cited
US5799191A
Cited
US5485617A
Cited
US5608909A
Cited
US5692184A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-01-17 | 2003-07-19 | 2004-01-18 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-01-17 | 2007-07-19 | 2008-01-18 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-01-17 | 2011-07-19 | 2012-01-18 | $7700.00 | Window Closed / Lapsed |