Patents by Inventor Daniel J. Heidinga

Daniel J. Heidinga has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20260037277
    Abstract: A system encounters an instruction that triggers generating an array that includes a set of elements initialized with a set of initial values. In response to encountering the instruction, the system identifies an application programming interface (API) for generating the array and executes a call to the API to request the API to generate the array. The API receives the call and, in response to the call, executes an array generation process to generate the array. The API provides the array to the system, and the system receives the array from the API. The array includes the set of elements initialized with the set of initial values.
    Type: Application
    Filed: May 5, 2025
    Publication date: February 5, 2026
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
  • Publication number: 20260037276
    Abstract: A system encounters a static field-access instruction to access a static field of a class. In response to encountering the static field-access instruction, the system determines that the first static field has yet to be accessed, and responsive to determining that the first static field has yet to be accessed, the system determines that an initial value has been assigned to the static field. In response to determining that the initial value has been assigned to the static field, the system accesses the static field.
    Type: Application
    Filed: May 5, 2025
    Publication date: February 5, 2026
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
  • Publication number: 20260037278
    Abstract: A system encounters an instruction that triggers loading a class. In response to encountering the instruction, the system executes a bytecode verification of the class. Executing the bytecode verification identifies an object instantiation process that, when executed, instantiates an object representing an instance of the class, and determines that the object instantiation process, when executed in the runtime environment, assigns an initial value to an instance field prior to the object being accessible in the runtime environment. In response to determining that the object instantiation process, when executed, assigns the initial value to the instance field prior to the object being accessible in the runtime environment, the system loads the class in the runtime environment.
    Type: Application
    Filed: May 5, 2025
    Publication date: February 5, 2026
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
  • Patent number: 10846147
    Abstract: Techniques are disclosed for providing class-specific parameters for spinlocks in an application executing in a runtime environment. During execution of the application, a blocking portion of code is entered for an object in the application. The runtime environment determines that one or more spinlock parameters is enabled for the object of a class. The runtime environment applies the determined spinlock parameters to the object. A spinlock algorithm is performed using the applied spinlock parameters.
    Type: Grant
    Filed: November 1, 2016
    Date of Patent: November 24, 2020
    Assignee: International Business Machines Corporation
    Inventors: Daniel J. Heidinga, Angela Lin, Babneet Singh
  • Patent number: 10649797
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Grant
    Filed: January 2, 2019
    Date of Patent: May 12, 2020
    Assignee: International Business Machines Corporation
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Publication number: 20190138332
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Application
    Filed: January 2, 2019
    Publication date: May 9, 2019
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Patent number: 10235165
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Grant
    Filed: November 9, 2016
    Date of Patent: March 19, 2019
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Patent number: 10228957
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Grant
    Filed: January 20, 2017
    Date of Patent: March 12, 2019
    Assignee: International Business Machines Corporation
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Publication number: 20180210743
    Abstract: Approaches presented herein enable providing online method handle deduplication by determining whether a method handle to be created is equivalent to an existing method handle in an equivalence pool. Specifically, in response to a request to create a method handle, a set of parameters including a method handle map, a class, and one or more arguments of the method handle to be created are accepted. A method handle of the class is obtained. One or more existing unique method handles found in an equivalence pool are compared to the method handle to be created to determine whether an equivalence exists. When an equivalence is found between an existing unique method handle and the method handle to be created, the existing unique method handle is returned.
    Type: Application
    Filed: January 20, 2017
    Publication date: July 26, 2018
    Inventors: David D. Bremner, Daniel J. Heidinga, Shijie Xu
  • Publication number: 20180203853
    Abstract: A method, computer program product, and system includes a processor(s) generating an interface to enable communication of data elements from a first computing resource to a second computing resource. An element of the data is a data structure of variable size. To generate the interface, the processor(s) requests a layout that includes a variable array. The processor(s) locates a layout referenced by the variable array; the layout for the variable array can accommodate the data structure of variable size. The processor(s) generates the layout, which includes generating a runtime class for an element type of the data structure of variable size and generating a runtime class for the variable array. The processor generates an enclosing layout that indicates to the second computing resource, delineations between the data elements. The processor(s) communicates, via the interface, the data elements from the first computing resource to the second computing resource.
    Type: Application
    Filed: January 13, 2017
    Publication date: July 19, 2018
    Inventors: Oluwatobi A. AJILA, Daniel J. HEIDINGA
  • Patent number: 10001979
    Abstract: Embodiments of the present invention provide methods, computer program products, and systems for optimizing virtual calls. Embodiments of the present invention can be used to receive a virtual call associated with a first implementation method and identify a virtual call associated with a second implementation method that appears to have similar functionality to the first implementation method. Embodiments of the present invention can determine whether the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result and, responsive to determining that the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result, use a result of the virtual call associated with the first implementation method as a result of the virtual call associated with the second implementation method.
    Type: Grant
    Filed: November 25, 2015
    Date of Patent: June 19, 2018
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
  • Publication number: 20180121255
    Abstract: Techniques are disclosed for providing class-specific parameters for spinlocks in an application executing in a runtime environment. During execution of the application, a blocking portion of code is entered for an object in the application. The runtime environment determines that one or more spinlock parameters is enabled for the object of a class. The runtime environment applies the determined spinlock parameters to the object. A spinlock algorithm is performed using the applied spinlock parameters.
    Type: Application
    Filed: November 1, 2016
    Publication date: May 3, 2018
    Inventors: Daniel J. HEIDINGA, Angela LIN, Babneet SINGH
  • Publication number: 20170147304
    Abstract: Embodiments of the present invention provide methods, computer program products, and systems for optimizing virtual calls. Embodiments of the present invention can be used to receive a virtual call associated with a first implementation method and identify a virtual call associated with a second implementation method that appears to have similar functionality to the first implementation method. Embodiments of the present invention can determine whether the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result and, responsive to determining that the virtual call associated with the first implementation method and the virtual call associated with the second implementation method produce the same result, use a result of the virtual call associated with the first implementation method as a result of the virtual call associated with the second implementation method.
    Type: Application
    Filed: November 25, 2015
    Publication date: May 25, 2017
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Vijay Sundaresan
  • Publication number: 20170139689
    Abstract: A method for caching a MethodType object. The method may include identifying, by a processor, a plurality of classes associated with a method descriptor string. The method may also include determining the identified plurality of classes are loaded into a language runtime environment associated with an object oriented programming language. The method may further include creating the MethodType object using the identified plurality of classes. The method may also include storing the created MethodType object in a cache. The method may further include transmitting the stored MethodType object to the language runtime environment.
    Type: Application
    Filed: November 12, 2015
    Publication date: May 18, 2017
    Inventors: Daniel J. Heidinga, Bjøm Vàrdal
  • Patent number: 9632755
    Abstract: A computer-implemented method includes receiving an invocation of an invoked interface associated with a class, identifying, based on the class, a plurality of interface lookup artifacts and a cached interface lookup artifact, and comparing the invoked interface with a cache interface. The cache interface is associated with the cached interface artifact. The computer-implemented method further includes, responsive to the invoked interface matching the cache interface, returning the cached interface artifact, and responsive to the invoked interface not matching the cache interface, searching the plurality of interface lookup artifacts until finding a matching interface lookup artifact. The matching interface lookup artifact is associated with a matching interface that matches the invoked interface. Responsive to finding the matching interface lookup artifact, returning the matching interface lookup artifact and updating the cached interface lookup artifact to the matching interface lookup artifact.
    Type: Grant
    Filed: October 6, 2015
    Date of Patent: April 25, 2017
    Assignee: International Business Machines Corporation
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
  • Publication number: 20170097811
    Abstract: A computer-implemented method includes receiving an invocation of an invoked interface associated with a class, identifying, based on the class, a plurality of interface lookup artefacts and a cached interface lookup artefact, and comparing the invoked interface with a cache interface. The cache interface is associated with the cached interface artefact. The computer-implemented method further includes, responsive to the invoked interface matching the cache interface, returning the cached interface artefact, and responsive to the invoked interface not matching the cache interface, searching the plurality of interface lookup artefacts until finding a matching interface lookup artefact. The matching interface lookup artefact is associated with a matching interface that matches the invoked interface. Responsive to finding the matching interface lookup artefact, returning the matching interface lookup artefact and updating the cached interface lookup artefact to the matching interface lookup artefact.
    Type: Application
    Filed: October 6, 2015
    Publication date: April 6, 2017
    Inventors: Patrick R. Doyle, Daniel J. Heidinga, Bjoern Vaardal
  • Publication number: 20170090920
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Application
    Filed: November 9, 2016
    Publication date: March 30, 2017
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Patent number: 9588778
    Abstract: Embodiments of the present invention disclose a method, system, and computer program product for a JNI object access system. A computer receives a JNI reference and obtains the pointer data and call site of the referenced object. The computer determines whether a record of the object and call site exist and, if not, the respective records are created. The computer applies a heuristic analysis of the object and call site in which it determines whether the object is larger than a threshold size, whether the object is part of a particular region of the heap, whether the call site is associated with a read-only or a read-write function, and whether the object or call site has caused more non-moving garbage collections than a threshold number. Based on the heuristic, the computer either copies the object data or pins the object and any non-moving garbage collections are recorded.
    Type: Grant
    Filed: June 29, 2015
    Date of Patent: March 7, 2017
    Assignee: International Business Machines Corporation
    Inventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor
  • Patent number: 9569206
    Abstract: An embodiments of the invention may include a method, computer program product and computer system for optimizing computer programs. The embodiment may include a computing device that determines a program code of a computer program contains at least two consecutive method handles. The embodiment may determine that the at least two consecutive method handles can be optimized. The embodiment may optimize the at least two consecutive method handles. Optimizing the at least two consecutive method handles may include one or more of: replacing the at least two consecutive method handles with one or more different commands; and reordering the at least two consecutive method handles.
    Type: Grant
    Filed: September 29, 2015
    Date of Patent: February 14, 2017
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Jinghua Feng, Daniel J. Heidinga
  • Publication number: 20160378508
    Abstract: Embodiments of the present invention disclose a method, system, and computer program product for a JNI object access system. A computer receives a JNI reference and obtains the pointer data and call site of the referenced object. The computer determines whether a record of the object and call site exist and, if not, the respective records are created. The computer applies a heuristic analysis of the object and call site in which it determines whether the object is larger than a threshold size, whether the object is part of a particular region of the heap, whether the call site is associated with a read-only or a read-write function, and whether the object or call site has caused more non-moving garbage collections than a threshold number. Based on the heuristic, the computer either copies the object data or pins the object and any non-moving garbage collections are recorded.
    Type: Application
    Filed: June 29, 2015
    Publication date: December 29, 2016
    Inventors: Graham A. Chapman, Charles R. Gracie, Daniel J. Heidinga, Karl M. Taylor