IP Library Granted Patent US 11,403,073
Granted Patent B2
US 11,403,073 · App. 16/436,071 · Granted Aug 2, 2022

System and method for enabling communication between disparate computer languages by sharing objects

Inventors: Matt Walsh (San Carlos, CA); Tim Z Andersen (Gilroy, CA)
Assignee: MZ IP Holdings, LLC
G06F8/315G06F9/5016
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,403,073
App. No.
16/436,071
Granted
Aug 2, 2022
Kind
B2
Abstract

A method, a system, and an article are provided for enabling communication between disparate computer languages. An example computer-implemented method includes: providing on a computing device (i) a first environment supporting a first computer language and (ii) a second environment supporting a second computer language different from the first computer language; providing an instance of an instantiated class definition as an object; accessing the object from both the first environment and the second environment; and deleting the object once a reference count indicates that the object is no longer being accessed by the first environment and the second environment.

Claims (69)

1. A method, comprising:

providing on a computing device (i) a first environment supporting a first computer language and (ii) a second environment supporting a second computer language different from the first computer language;

providing an instance of an instantiated class definition as an object,

wherein providing the instance of the instantiated class definition as the object comprises:

using the first environment supporting the first computer language to allocate memory for the object; and

sending a memory address for the object from the first environment supporting the first computer language to the second environment supporting the second computer language;

accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language,

wherein the object is modifiable by both the first environment supporting the first computer language and the second environment supporting the second computer language; and

deleting the object once a reference count for the object indicates that the object is no longer being accessed by both the first environment supporting the first computer language and the second environment supporting the second computer language,

wherein deleting the object comprises constructing a handles dictionary using a memory address for the object as a key and a number of references for the object as a value for the key,

wherein the handles dictionary coordinates reference counting between the first environment supporting the first computer language and the second environment supporting the second computer language to prevent premature deletion of the object,

wherein the first computer language comprises a plurality of functions,

wherein a first subset of the plurality of functions has been registered to be reachable by both the first computer language and the second computer language, and

wherein a second subset of the plurality of functions has not been registered and is reachable by the first computer language but not reachable by the second computer language.

2. The method of claim 1 , wherein the computing device comprises a client device for an online game or a server for an online game.

3. The method of claim 1 , wherein the first computer language comprises a programming language and the second computer language comprises a scripting language.

4. The method of claim 1 , wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language comprises:

accessing an identical memory address for the object from both the first environment supporting the first computer language and the second environment supporting the second computer language.

5. The method of claim 1 , wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language comprises:

identifying the object as a specific type from both the first environment supporting the first computer language and the second environment supporting the second computer language.

6. The method of claim 1 , wherein providing the instance of the instantiated class definition as the object is performed from one of the first environment supporting the first computer language and the second environment supporting the second computer language, and wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language is performed from a different one of the first environment supporting the first computer language and the second environment supporting the second computer language.

7. The method of claim 1 , wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language comprises:

using the first environment supporting the first computer language to determine that an event associated with the object has occurred;

using the first environment supporting the first computer language to inform the second environment supporting the second computer language about the occurrence of the event associated with the object; and

executing a callback function in the second environment supporting the second computer language in response to the occurrence of the event associated with the object.

8. The method of claim 1 , wherein the reference count for the object comprises a number of at least one of references, pointers, or handles to the object from both the first environment supporting the first computer language and the second environment supporting the second computer language.

9. The method of claim 1 , wherein the first environment supporting the first computer language comprises a game engine for an online game and the second environment supporting the second computer language comprises a game manager for the online game.

10. A system, comprising:

one or more computer processors programmed to perform operations comprising:

providing on a computing device (i) a first environment supporting a first computer language and (ii) a second environment supporting a second computer language different from the first computer language;

providing an instance of an instantiated class definition as an object,

wherein providing the instance of the instantiated class definition as the object comprises:

using the first environment supporting the first computer language to allocate memory for the object; and

sending a memory address for the object from the first environment supporting the first computer language to the second environment supporting the second computer language;

accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language,

wherein the object is modifiable by both the first environment supporting the first computer language and the second environment supporting the second computer language; and

deleting the object once a reference count for the object indicates that the object is no longer being accessed by both the first environment supporting the first computer language and the second environment supporting the second computer language,

wherein deleting the object comprises constructing a handles dictionary using a memory address for the object as a key and a number of references for the object as a value for the key,

wherein the handles dictionary coordinates reference counting between the first environment supporting the first computer language and the second environment supporting the second computer language to prevent premature deletion of the object,

wherein the first computer language comprises a plurality of functions,

wherein a first subset of the plurality of functions has been registered to be reachable by both the first computer language and the second computer language, and

wherein a second subset of the plurality of functions has not been registered and is reachable by the first computer language but not reachable by the second computer language.

11. The system of claim 10 , wherein the first computer language comprises a programming language and the second computer language comprises a scripting language.

12. The system of claim 10 , wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language comprises:

accessing an identical memory address for the object from both the first environment supporting the first computer language and the second environment supporting the second computer language.

13. The system of claim 10 , wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language comprises:

identifying the object as a specific type from both the first environment supporting the first computer language and the second environment supporting the second computer language.

14. The system of claim 10 , wherein providing the instance of the instantiated class definition as the object is performed from one of the first environment supporting the first computer language and the second environment supporting the second computer language, and wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language is performed from a different one of the first environment supporting the first computer language and the second environment supporting the second computer language.

15. The system of claim 10 , wherein accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language comprises:

using the first environment supporting the first computer language to determine that an event associated with the object has occurred;

using the first environment supporting the first computer language to inform the second environment supporting the second computer language about the occurrence of the event associated with the object; and

executing a callback function in the second environment supporting the second computer language in response to the occurrence of the event associated with the object.

16. The system of claim 10 , wherein the reference count for the object comprises a number of at least one of references, pointers, or handles to the object from both the first environment supporting the first computer language and the second environment supporting the second computer language.

17. The system of claim 10 , wherein the first environment supporting the first computer language comprises a game engine for an online game and the second environment supporting the second computer language comprises a game manager for the online game.

18. An article, comprising:

a non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to perform operations comprising:

providing on a computing device (i) a first environment supporting a first computer language and (ii) a second environment supporting a second computer language different from the first computer language;

providing an instance of an instantiated class definition as an object,

wherein providing the instance of the instantiated class definition as the object comprises:

using the first environment supporting the first computer language to allocate memory for the object; and

sending a memory address for the object from the first environment supporting the first computer language to the second environment supporting the second computer language;

accessing the object from both the first environment supporting the first computer language and the second environment supporting the second computer language,

wherein the object is modifiable by both the first environment supporting the first computer language and the second environment supporting the second computer language; and

deleting the object once a reference count for the object indicates that the object is no longer being accessed by both the first environment supporting the first computer language and the second environment supporting the second computer language,

wherein deleting the object comprises constructing a handles dictionary using a memory address for the object as a key and a number of references for the object as a value for the key,

wherein the handles dictionary coordinates reference counting between the first environment supporting the first computer language and the second environment supporting the second computer language to prevent premature deletion of the object,

wherein the first computer language comprises a plurality of functions,

wherein a first subset of the plurality of functions has been registered to be reachable by both the first computer language and the second computer language, and

wherein a second subset of the plurality of functions has not been registered and is reachable by the first computer language but not reachable by the second computer language.

Assignments (2)
SHORT FORM PATENT SECURITY AGREEMENT Recorded Jun 30, 2025
From: MZ IP HOLDINGS, LLC; COGNANT LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071772/0216 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2019
From: WALSH, MATT; ANDERSEN, TIM Z
To: MZ IP HOLDINGS, LLC
Reel/Frame 049595/0231 →
Continuity (2)
Provisional Application 62684399 · Jun 13, 2018
Related Publication 20190384579A1 · Dec 19, 2019