Claims Analysis
Total Claims: 93
Claim 1
Independent Claim
77 words
A method in a computer compiler for generating code to destroy an object, the object having a class, the class having a destructor to destroy objects of the class, the method comprising the steps of: generating a plurality of destructor functions for the class wherein each destructor function executes a subset of the destruction process; and generating code to invoke one of the plurality of destructor functions when an object of the class is to be destroyed.
Claim 2
Independent Claim
77 words
A method in a computer compiler for generating code to destroy an object, the object having a class, the class having a destructor to destroy objects of the class, the method comprising the steps of: generating a plurality of destructor functions for the class wherein each destructor function executes a subset of the destruction process; and generating code to invoke one of the plurality of destructor functions when an object of the class is to be destroyed.
Claim 3
Dependent Claim
34 words
The method of claim 1 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy the object when the class is not a most-derived class for the object.
Claim 4
Dependent Claim
53 words
The method of claim 2 wherein the destructor function to destroy the object performs the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; and invoking destructors for direct base classes of the class that have destructors.
Claim 5
Dependent Claim
33 words
The method of claim 1 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy the object when the class is a most-derived class for the object.
Claim 6
Dependent Claim
73 words
The method of claim 4 wherein the destructor function to destroy the object performs the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; and invoking destructors for virtual base classes of the class, when the virtual base classes have destructors.
Claim 7
Dependent Claim
50 words
The method of claim 1 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy the object when the class is a most-derived class for the object and to deallocate memory associated with the object using a memory deallocation function appropriate for the class.
Claim 8
Dependent Claim
87 words
The method of claim 6 wherein the destructor function to destroy the object and to deallocated memory associated with the object performs the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; invoking destructors for virtual base classes of the class, when the virtual base classes have destructors; and deallocating memory associated with the object.
Claim 9
Dependent Claim
25 words
The method of claim 1 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy an array of objects.
Claim 10
Dependent Claim
81 words
The method of claim 8 wherein the destructor function to destroy an array of objects performs for each object in the array the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; and invoking destructors for virtual base classes of the class, when the virtual base classes have destructors.
Claim 11
Dependent Claim
35 words
The method of claim 1 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy an array of objects and to deallocate memory associated with the array of objects.
Claim 12
Dependent Claim
101 words
The method of claim 10 wherein the destructor function to destroy an array of objects and to deallocate memory associated with the array of objects performs the steps of: for each object in the array, executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; and invoking destructors for virtual base classes of the class, when the virtual base classes have destructors; and deallocating the memory associated with the array of objects.
Claim 13
Independent Claim
65 words
A method in a computer system for destroying an occurrence of a base class within a derived class, the method comprising the computer-implemented steps of: invoking a destructor function of the base class without passing an indication that the occurrence of the base class is within the derived class; and under control of the destructor function, controlling destruction of the occurrence of the base class.
Claim 14
Independent Claim
65 words
A method in a computer system for destroying an occurrence of a base class within a derived class, the method comprising the computer-implemented steps of: invoking a destructor function of the base class without passing an indication that the occurrence of the base class is within the derived class; and under control of the destructor function, controlling destruction of the occurrence of the base class.
Claim 15
Dependent Claim
68 words
The method of claim 12 further including: under control of the destructor function, when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 16
Independent Claim
62 words
A method in a computer system for destroying an object of a class when the class is a most-derived class, the method comprising the computer-implemented steps of: invoking a scalar destructor function of the class without passing an indication that the class is a most-derived class; and under control of the scalar destructor function, controlling destruction of the object of the class.
Claim 17
Independent Claim
62 words
A method in a computer system for destroying an object of a class when the class is a most-derived class, the method comprising the computer-implemented steps of: invoking a scalar destructor function of the class without passing an indication that the class is a most-derived class; and under control of the scalar destructor function, controlling destruction of the object of the class.
Claim 18
Dependent Claim
53 words
The method of claim 14 further including: under control of the scalar destructor function, performing steps for destroying an occurrence of the class when the class is not a most-derived class; and when the class has a virtual base class with a destructor function, invoking the destructor function for the virtual base class.
Claim 19
Dependent Claim
66 words
The method of claim 15 wherein the step of performing includes: when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 20
Dependent Claim
75 words
The method of claim 15 wherein the step of performing includes: invoking a destructor function that performs the steps of when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 21
Independent Claim
67 words
A method in a computer system for destroying an object of a class when the class is a most-derived class, the method comprising the computer-implemented steps of: invoking a delete scalar destructor function of the class without passing an indication that the class is a most-derived class; and under control of the delete scalar destructor function, controlling destruction of the object and deallocating memory for the object.
Claim 22
Independent Claim
67 words
A method in a computer system for destroying an object of a class when the class is a most-derived class, the method comprising the computer-implemented steps of: invoking a delete scalar destructor function of the class without passing an indication that the class is a most-derived class; and under control of the delete scalar destructor function, controlling destruction of the object and deallocating memory for the object.
Claim 23
Dependent Claim
43 words
The method of claim 18 further including: under control of the delete scalar destructor function, invoking a scalar destructor function for destroying the object when the class is a most-derived class without deallocating memory for the object; and deallocating memory for the object.
Claim 24
Dependent Claim
53 words
The method of claim 19 further including: under control of the scalar destructor function, performing steps for destroying an occurrence of the class when the class is not a most-derived class; and when the class has a virtual base class with a destructor function, invoking the destructor function for the virtual base class.
Claim 25
Dependent Claim
66 words
The method of claim 20 wherein the step of performing includes: when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 26
Dependent Claim
75 words
The method of claim 20 wherein the step of performing includes: invoking a destructor function that performs the steps of when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 27
Independent Claim
82 words
A method in a computer system for generating a hierarchy of destructor functions for controlling the destruction of objects of a class, the method comprising the computer-implemented steps of: creating an occurrence destructor function for controlling destruction of an occurrence of the class when the class is not a most-derived class; creating a scalar destructor function for controlling destruction of an object of the class when the class is a most-derived class, wherein the scalar destructor function invokes the occurrence destructor function.
Claim 28
Independent Claim
82 words
A method in a computer system for generating a hierarchy of destructor functions for controlling the destruction of objects of a class, the method comprising the computer-implemented steps of: creating an occurrence destructor function for controlling destruction of an occurrence of the class when the class is not a most-derived class; creating a scalar destructor function for controlling destruction of an object of the class when the class is a most-derived class, wherein the scalar destructor function invokes the occurrence destructor function.
Claim 29
Dependent Claim
82 words
The method of claim 23 wherein the occurrence destructor function executes a programmer-defined destructor for the class, when the class has the programmer-defined destructor; invokes a data member destructor function for a data member of the class, when the data member has the data member destructor function; and invokes a non-virtual direct base class destructor function for a non-virtual direct base class of the class, when the class has a non-virtual direct base class with the non-virtual direct base class destructor function.
Claim 30
Independent Claim
48 words
The method of claims 23 or 24 wherein the scalar destructor function after invoking the occurrence destructor function, invokes a virtual base class destructor function for a virtual base class of the class, when the class has a virtual base class with the virtual base class destructor function.
Claim 31
Dependent Claim
65 words
The method of claim 25 including the step of: creating a delete scalar destructor function for controlling destruction of an object of the class when the class is a most-derived class and for deallocating memory for the object, wherein the delete scalar destructor function invokes the scalar destructor function and deallocates memory for the object when passed an indication to deallocate memory for the object.
Claim 32
Dependent Claim
48 words
The method of claim 23 including the step of: creating a vector destructor function for controlling destruction of an array of objects of the class when the class is a most-derived class, wherein the vector destructor function invokes the scalar destructor function for each object in the array.
Claim 33
Dependent Claim
57 words
The method of claim 27 including the step of: creating a delete vector destructor function for controlling destruction of an array of objects of the class when the class is a most-derived class and for deallocating memory for the array, wherein the delete vector destructor function invokes the vector destructor function and deallocates memory for the array.
Claim 34
Dependent Claim
68 words
The method of claim 27 including the step of: creating a delete vector destructor function for controlling destruction of an array of objects of the class when the class is a most-derived class and for deallocating memory for the array, wherein the delete vector destructor function invokes the vector destructor function and deallocates memory for the array when passed an indication to deal locate memory for the array.
Claim 35
Dependent Claim
106 words
The method of claim 27 including the step of: creating a delete vector destructor function for controlling destruction of objects of the class when a destructor for the class is specified to be virtual, wherein the delete vector destructor function when passed an indication that an array of objects of the class is to be destroyed, invokes the vector destructor function and deallocates memory for the array; and when passed an indication that a single object of the class is to be destroyed, invokes the scalar destructor function and deallocates memory for the single object when passed an indication to deallocate memory for the single object.
Claim 36
Independent Claim
67 words
A method in a computer system for generating multiple destructor functions for destroying objects of a class, the method comprising the steps of: creating an occurrence destructor function for controlling destruction of an object of the class when the class is not a most-derived class; and creating a scalar destructor function for controlling destruction of an object of the class when the class is a most-derived class.
Claim 37
Independent Claim
67 words
A method in a computer system for generating multiple destructor functions for destroying objects of a class, the method comprising the steps of: creating an occurrence destructor function for controlling destruction of an object of the class when the class is not a most-derived class; and creating a scalar destructor function for controlling destruction of an object of the class when the class is a most-derived class.
Claim 38
Dependent Claim
15 words
The method of claim 31 wherein the scalar destructor function invokes the occurrence destructor function.
Claim 39
Independent Claim
24 words
The method of claims 31 or 32 wherein the scalar destruction function is a delete scalar destructor function that deallocates memory for the object.
Claim 40
Dependent Claim
33 words
The method of claim 31 including creating a delete scalar function for controlling destruction of an object of the class when the class is a most-derived and for deallocating memory for the object.
Claim 41
Dependent Claim
14 words
The method of claim 34 wherein the delete scalar function invokes the scalar function.
Claim 42
Independent Claim
65 words
A method in a computer system for generating code for destroying an object of a class, the method comprising the computer-implemented steps of: determining a characteristic of instantiation of the class of the object; generating a destructor function for controlling destruction of the object based on the determined characteristic; and when the object is to be destroyed, generating an invocation of the generated destructor function.
Claim 43
Independent Claim
65 words
A method in a computer system for generating code for destroying an object of a class, the method comprising the computer-implemented steps of: determining a characteristic of instantiation of the class of the object; generating a destructor function for controlling destruction of the object based on the determined characteristic; and when the object is to be destroyed, generating an invocation of the generated destructor function.
Claim 44
Dependent Claim
22 words
The method of claim 36 wherein the determined characteristic is whether the object is an automatic object or a dynamically allocated object.
Claim 45
Dependent Claim
79 words
The method of claim 37 wherein the object is an automatic object, and further including: generating the destructor function as a scalar destructor function for controlling destruction of the object and without having computer code for deallocating memory of the object; and when the object goes out of scope, generating the invocation as an invocation of the scalar destructor function wherein the invocation does not include passing an indication that memory for the object is not to be deallocated.
Claim 46
Dependent Claim
127 words
The method of claim 37 wherein the object is an automatic object, and further including: generating the destructor function as a scalar destructor function consisting essentially of the steps of: when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; and when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and when the object goes out of scope, generating the invocation as an invocation of the scalar destructor function.
Claim 47
Independent Claim
33 words
The method of claims 38 or 39 including generating the invocation of the scalar destructor function as a direct invocation, rather than an indirect invocation through a virtual function table of the class.
Claim 48
Dependent Claim
91 words
The method of claim 37 wherein the object is within an array of objects of the class and the array is an automatic array and further including: generating the destructor function as a vector destructor function for controlling destruction of the array and without having computer code for deallocating memory of the array; and when the array goes out of scope, generating the invocation as an invocation of the vector destructor function wherein the invocation does not include passing an indication that memory for the array is not to be deallocated.
Claim 49
Dependent Claim
145 words
The method of claim 37 wherein the object is within an array of objects of the class and the array is an automatic array and further including: generating the destructor function as a vector destructor function consisting essentially of the steps of, for each object in the array, when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; and when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and when the array goes out of scope, generating the invocation as an invocation of the vector destructor function.
Claim 50
Independent Claim
33 words
The method of claims 41 or 42 including generating the invocation of the vector destructor function as a direct invocation, rather than an indirect invocation through a virtual function table of the class.
Claim 51
Dependent Claim
98 words
The method of claim 37 wherein the object is a dynamically allocated object and further including: generating the destructor function as a scalar destructor function for controlling destruction of the object and without having computer code for deallocating memory of the object; and when a destructor for the class is explicitly invoked and the invocation explicitly indicates to resolve the destructor to the destructor for the class, generating the invocation as an invocation of the scalar destructor function object wherein the invocation does not include passing an indication that memory for the object is not to be deallocated.
Claim 52
Dependent Claim
145 words
The method of claim 37 wherein the object is a dynamically allocated object and further including: generating the destructor function as a scalar destructor function consisting essentially of the steps of when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; and when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and when a destructor for the class is explicitly invoked and the invocation explicitly indicates to resolve the destructor to the destructor for the class, generating the invocation as an invocation of the scalar destructor function.
Claim 53
Independent Claim
33 words
The method of claims 44 or 45 includes generating the invocation of the scalar destructor function as a direct invocation, rather than an indirect invocation through a virtual function table of the class.
Claim 54
Dependent Claim
105 words
The method of claim 37 wherein the object is a dynamically allocated object and further including: generating the destructor function as a delete scalar destructor function for controlling destruction of the object and having computer code for deallocating memory for the object; setting a virtual function table for the class to contain a reference to the delete scalar destructor function; and when the object is destroyed using a non-global operator delete, generating the invocation as an indirect invocation of the delete scalar destructor function through the virtual function table wherein the invocation includes passing an indication that memory for the object is to be deallocated.
Claim 55
Dependent Claim
162 words
The method of claim 37 wherein the object is a dynamically allocated object and further including: generating the destructor function as a delete scalar destructor function consisting essentially of the steps of: when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and deallocating memory for the object; setting a virtual function table for the class to contain a reference to the delete scalar destructor function; and when the object is destroyed using a non-global operator delete, generating the invocation as an indirect invocation of the delete scalar destructor function through the virtual function table.
Claim 56
Dependent Claim
86 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a delete vector destructor function for controlling destruction of the object, the delete vector destructor function having computer code for destroying and deallocating an array of objects of the class when the object is within an array of objects of the class and for destroying and deallocating the object when the object is not within an array of objects of the class.
Claim 57
Dependent Claim
271 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a delete vector destructor function that is passed an indication whether an array of objects is being destroyed and an indication whether to deallocate memory for an object that is not within an array, the delete vector destructor function consisting essentially of the steps of: when the object that is not within an array is being destroyed, when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and when memory for the object is to be deallocated, deallocating memory for the object; and when an array objects is being destroyed, for each object in the array, when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; and when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and deallocating memory for the array.
Claim 58
Independent Claim
79 words
The method of claims 49 or 50 further including: setting a virtual function table for the class to contain a reference to the delete vector destructor function; and when the object is destroyed using a non-global operator delete, generating the invocation as an indirect invocation of the delete vector destructor function through the virtual function table passing an indication that the object is not within an array and an indication that memory for the object is to be deallocated.
Claim 59
Independent Claim
71 words
The method of claims 49 or 50 further including: setting a virtual function table for the class to contain a reference to the delete vector destructor function; and when an array of dynamically allocated objects of the class is destroyed using an operator delete, generating the invocation as an indirect invocation of the delete vector destructor function through the virtual function table passing an indication that an array is being destroyed.
Claim 60
Dependent Claim
15 words
The method of claim 52 wherein the array is destroyed using a global operator delete.
Claim 61
Dependent Claim
15 words
The method of claim 52 wherein the array is destroyed using a non-global operator delete.
Claim 62
Independent Claim
75 words
The method of claims 49 or 50 further including: when the object is deleted using a global operator delete, generating the invocation as an indirect invocation of the delete vector destructor function through the virtual function table passing an indication that an array is not being destroyed and an indication that memory for the object is not to be deallocated; and generating an invocation to the global operator delete to deallocate memory for the object.
Claim 63
Independent Claim
95 words
The method of claims 49 or 50 further including: setting a virtual function table for the class to contain a reference to the delete vector destructor function; and when a destructor is explicitly invoked for the object and the invocation does not explicitly indicate to resolve the destructor to the destructor for the class, generating the invocation as an indirect invocation of the delete vector destructor function through the virtual function table passing an indication that an array is not being destroyed and an indication that memory for the object is not to be deallocated.
Claim 64
Dependent Claim
38 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a delete scalar destructor function for controlling the destruction and deallocation of the object.
Claim 65
Dependent Claim
148 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a delete scalar destructor function that is passed an indication whether to deallocate memory for the object, the delete scalar destruction function consisting essentially of the steps of: when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function; and when the indication indicates that memory for the object is to be deallocated, deallocating memory for the object.
Claim 66
Independent Claim
68 words
The method of claims 57 or 58 further including: setting a virtual function table for the class to contain a reference to the delete scalar destructor function; and when the object is destroyed using a non-global operator delete, generating the invocation as an indirect invocation of the delete scalar destructor function through the virtual function table passing an indication that memory for the object is to be deallocated.
Claim 67
Independent Claim
65 words
The method of claims 57 or 58 further including: when the object is destroyed using a global operator delete, generating the invocation as an indirect invocation of the delete scalar destructor function through the virtual function table passing an indication that memory for the object is not to be deallocated; and generating an invocation to the global operator delete to deallocate memory for the object.
Claim 68
Independent Claim
85 words
The method of claims 57 or 58 further including: setting a virtual function table for the class to contain a reference to the delete scalar destructor function; and when a destructor is explicitly invoked for the object and the invocation does not explicitly indicate to resolve the destructor to a destructor for the class, generating the invocation as an indirect invocation of the delete scalar destructor function through the virtual function table passing an indication that memory for the object is not to be deallocated.
Claim 69
Dependent Claim
124 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a delete scalar destructor function for controlling destruction of the object, the delete scalar destructor function having computer code for deallocating memory of the object; setting a virtual function table for the class to contain a reference to the delete scalar destructor function; and when the object is destroyed using a global operator delete, generating the invocation as an indirect invocation of the delete scalar destructor function through the virtual function table passing an indication that memory for the object is not to be deallocated; and generating an invocation of the global delete function to deallocate memory for the object.
Claim 70
Dependent Claim
45 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a scalar destructor function for controlling destruction of the object and without having computer code for deallocating memory for the object.
Claim 71
Dependent Claim
112 words
The method of claim 37 wherein the object is a dynamically allocated object of the class and further including: generating the destructor function as a scalar destructor function consisting essentially of the steps of: when the class has a programmer-defined destructor, executing the programmer-defined destructor; when a data member of the class has a data member destructor function, invoking the data member destructor function; when a non-virtual direct base class of the class has a non-virtual direct base class destructor function, invoking the non-virtual direct base class destructor function; and when a virtual base class of the class has a virtual base class destructor function, invoking the virtual base class destructor function.
Claim 72
Independent Claim
69 words
The method of claims 63 or 64 further including: setting a virtual function table for the class to contain a reference to the scalar destructor function; and when the object is deleted using a global operator delete, generating the invocation as an indirect invocation of the scalar destructor function through the virtual function table; and generating an invocation to the global operator delete to deallocate memory for the object.
Claim 73
Independent Claim
70 words
The method of claims 63 or 64 further including: setting a virtual function table for the class to contain a reference to the scalar destructor function; and when a destructor is explicitly invoked for the object and the invocation does not explicitly indicate to resolve the destructor to a destructor for the class, generating the invocation as an indirect invocation of the scalar destructor function through the virtual function table.
Claim 74
Dependent Claim
90 words
A computer-readable storage device containing instructions for controlling a computer system to perform a method in a computer compiler for generating code to destroy an object, the object having a class, the class having a destructor to destroy objects of the class, the method comprising the steps of: generating a plurality of destructor functions for the class wherein each destructor function executes a subset of the destruction process; and generating code to invoke one of the plurality of destructor functions when an object of the class is to be destroyed.
Claim 75
Dependent Claim
90 words
A computer-readable storage device containing instructions for controlling a computer system to perform a method in a computer compiler for generating code to destroy an object, the object having a class, the class having a destructor to destroy objects of the class, the method comprising the steps of: generating a plurality of destructor functions for the class wherein each destructor function executes a subset of the destruction process; and generating code to invoke one of the plurality of destructor functions when an object of the class is to be destroyed.
Claim 76
Dependent Claim
47 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 67 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy the object when the class is not a most-derived class for the object.
Claim 77
Dependent Claim
66 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 68 wherein the destructor function to destroy the object performs the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; and invoking destructors for direct base classes of the class that have destructors.
Claim 78
Dependent Claim
46 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 67 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy the object when the class is a most-derived class for the object.
Claim 79
Dependent Claim
86 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 70 wherein the destructor function to destroy the object performs the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; and invoking destructors for virtual base classes of the class, when the virtual base classes have destructors.
Claim 80
Dependent Claim
63 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 67 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy the object when the class is a most-derived class for the object and to deallocate memory associated with the object using a memory deallocation function appropriate for the class.
Claim 81
Dependent Claim
100 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 72 wherein the destructor function to destroy the object and to deallocated memory associated with the object performs the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; invoking destructors for virtual base classes of the class, when the virtual base classes have destructors; and deallocating memory associated with the object.
Claim 82
Dependent Claim
38 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 67 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy an array of objects.
Claim 83
Dependent Claim
94 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 74 wherein the destructor function to destroy an array of objects performs for each object in the array the steps of: executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; and invoking destructors for virtual base classes of the class, when the virtual base classes have destructors.
Claim 84
Dependent Claim
48 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 67 wherein the step of generating a plurality of destructor functions generates a destructor function to destroy an array of objects and to deallocate memory associated with the array of objects.
Claim 85
Dependent Claim
114 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 76 wherein the destructor function to destroy an array of objects and to deallocate memory associated with the array of objects performs the steps of: for each object in the array, executing programmer-specified destruction processing, when specified by a programmer; invoking destructors for data members of the class, when the data members have destructors; invoking destructors for direct base classes of the class, when the direct base classes have destructors; and invoking destructors for virtual base classes of the class, when the virtual base classes have destructors; and deallocating the memory associated with the array of objects.
Claim 86
Dependent Claim
78 words
A computer-readable storage device containing instructions for controlling a computer system to perform a method in a computer system for destroying an occurrence of a base class within a derived class, the method comprising the computer-implemented steps of: invoking a destructor function of the base class without passing an indication that the occurrence of the base class is within the derived class; and under control of the destructor function, controlling destruction of the occurrence of the base class.
Claim 87
Dependent Claim
78 words
A computer-readable storage device containing instructions for controlling a computer system to perform a method in a computer system for destroying an occurrence of a base class within a derived class, the method comprising the computer-implemented steps of: invoking a destructor function of the base class without passing an indication that the occurrence of the base class is within the derived class; and under control of the destructor function, controlling destruction of the occurrence of the base class.
Claim 88
Dependent Claim
81 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 78 further including: under control of the destructor function, when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a nonvirtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 89
Dependent Claim
75 words
A computer-readable storage device containing instructions for controlling a computer system to perform a method in a computer system for destroying an object of a class when the class is a most-derived class, the method comprising the computer-implemented steps of: invoking a scalar destructor function of the class without passing an indication that the class is a most-derived class; and under control of the scalar destructor function, controlling destruction of the object of the class.
Claim 90
Dependent Claim
75 words
A computer-readable storage device containing instructions for controlling a computer system to perform a method in a computer system for destroying an object of a class when the class is a most-derived class, the method comprising the computer-implemented steps of: invoking a scalar destructor function of the class without passing an indication that the class is a most-derived class; and under control of the scalar destructor function, controlling destruction of the object of the class.
Claim 91
Dependent Claim
66 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 80 further including: under control of the scalar destructor function, performing steps for destroying an occurrence of the class when the class is not a most-derived class; and when the class has a virtual base class with a destructor function, invoking the destructor function for the virtual base class.
Claim 92
Dependent Claim
79 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 81 wherein the step of performing includes: when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the dam member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.
Claim 93
Dependent Claim
88 words
A computer-readable storage device containing instructions for controlling a computer system to perform the method of claim 81 wherein the step of performing includes: invoking a destructor function that performs the steps of when a programmer-defined destructor is specified for the class, executing the programmer-defined destructor; when the class has a data member with a destructor function, invoking the destructor function of the data member; and when the class has a non-virtual direct base class with a destructor function, invoking the destructor function of the non-virtual base class.