1 static char help[] = "Demonstrates previous memory leak for XXXRegister()\n\n"; 2 3 #include <petscts.h> 4 #include <petsccharacteristic.h> 5 #include <petscdraw.h> 6 #include <petscdm.h> 7 #include <petscpf.h> 8 #include <petscsf.h> 9 #include <petscao.h> 10 11 static PetscErrorCode TSGLLEAdaptCreate_Dummy(TSGLLEAdapt ts) { 12 PetscFunctionBeginUser; 13 PetscFunctionReturn(0); 14 } 15 16 static PetscErrorCode TSGLLECreate_Dummy(TS ts) { 17 PetscFunctionBeginUser; 18 PetscFunctionReturn(0); 19 } 20 21 static PetscErrorCode TSAdaptCreate_Dummy(TSAdapt ts) { 22 PetscFunctionBeginUser; 23 PetscFunctionReturn(0); 24 } 25 26 static PetscErrorCode TSCreate_Dummy(TS ts) { 27 PetscFunctionBeginUser; 28 PetscFunctionReturn(0); 29 } 30 31 #if !defined(PETSC_USE_COMPLEX) 32 static PetscErrorCode CharacteristicCreate_Dummy(Characteristic chr) { 33 PetscFunctionBeginUser; 34 PetscFunctionReturn(0); 35 } 36 #endif 37 38 static PetscErrorCode SNESLineSearchCreate_Dummy(SNESLineSearch sneslinesearch) { 39 PetscFunctionBeginUser; 40 PetscFunctionReturn(0); 41 } 42 43 static PetscErrorCode SNESCreate_Dummy(SNES snes) { 44 PetscFunctionBeginUser; 45 PetscFunctionReturn(0); 46 } 47 48 static PetscErrorCode KSPCreate_Dummy(KSP ksp) { 49 PetscFunctionBeginUser; 50 PetscFunctionReturn(0); 51 } 52 53 static PetscErrorCode KSPGuessCreate_Dummy(KSPGuess ksp) { 54 PetscFunctionBeginUser; 55 PetscFunctionReturn(0); 56 } 57 58 static PetscErrorCode PCCreate_Dummy(PC pc) { 59 PetscFunctionBeginUser; 60 PetscFunctionReturn(0); 61 } 62 63 static PetscErrorCode DMCreate_Dummy(DM dm) { 64 PetscFunctionBeginUser; 65 PetscFunctionReturn(0); 66 } 67 68 static PetscErrorCode MatOrderingCreate_Dummy(Mat mat, MatOrderingType mtype, IS *isr, IS *isc) { 69 PetscFunctionBeginUser; 70 PetscFunctionReturn(0); 71 } 72 73 static PetscErrorCode MatPartitioningCreate_Dummy(MatPartitioning mat) { 74 PetscFunctionBeginUser; 75 PetscFunctionReturn(0); 76 } 77 78 static PetscErrorCode MatCreate_Dummy(Mat mat) { 79 PetscFunctionBeginUser; 80 PetscFunctionReturn(0); 81 } 82 83 static PetscErrorCode PFCreate_Dummy(PF pf, void *ctx) { 84 PetscFunctionBeginUser; 85 PetscFunctionReturn(0); 86 } 87 88 static PetscErrorCode VecCreate_Dummy(Vec vec) { 89 PetscFunctionBeginUser; 90 PetscFunctionReturn(0); 91 } 92 93 static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec) { 94 PetscFunctionBeginUser; 95 PetscFunctionReturn(0); 96 } 97 98 static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf) { 99 PetscFunctionBeginUser; 100 PetscFunctionReturn(0); 101 } 102 103 static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is) { 104 PetscFunctionBeginUser; 105 PetscFunctionReturn(0); 106 } 107 108 static PetscErrorCode ISCreate_Dummy(IS is) { 109 PetscFunctionBeginUser; 110 PetscFunctionReturn(0); 111 } 112 113 static PetscErrorCode AOCreate_Dummy(AO ao) { 114 PetscFunctionBeginUser; 115 PetscFunctionReturn(0); 116 } 117 118 static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw) { 119 PetscFunctionBeginUser; 120 PetscFunctionReturn(0); 121 } 122 123 static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer) { 124 PetscFunctionBeginUser; 125 PetscFunctionReturn(0); 126 } 127 128 static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand) { 129 PetscFunctionBeginUser; 130 PetscFunctionReturn(0); 131 } 132 133 int main(int argc, char **argv) { 134 PetscReal A[1], Gamma[1] = {1.0}, b[1], c[1], d[1]; 135 136 PetscFunctionBeginUser; 137 PetscCall(PetscInitialize(&argc, &argv, (char *)0, help)); 138 /* TaoLineSearchRegister() also has the same memory leak */ 139 /* TaoRegister() also has the same memory leak */ 140 PetscCall(TSGLLEAdaptRegister("dummy", TSGLLEAdaptCreate_Dummy)); 141 PetscCall(TSGLLERegister("dummy", TSGLLECreate_Dummy)); 142 PetscCall(TSRKRegister("dummy", 0, 0, A, 0, 0, 0, 0, 0)); 143 PetscCall(TSGLEERegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); 144 PetscCall(TSARKIMEXRegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); 145 PetscCall(TSRosWRegister("dummy", 0, 1, A, Gamma, b, 0, 0, 0)); 146 PetscCall(TSBasicSymplecticRegister("dummy", 0, 0, c, d)); 147 PetscCall(TSAdaptRegister("dummy", TSAdaptCreate_Dummy)); 148 PetscCall(TSRegister("dummy", TSCreate_Dummy)); 149 #if !defined(PETSC_USE_COMPLEX) 150 PetscCall(CharacteristicRegister("dummy", CharacteristicCreate_Dummy)); 151 #endif 152 PetscCall(SNESLineSearchRegister("dummy", SNESLineSearchCreate_Dummy)); 153 PetscCall(SNESRegister("dummy", SNESCreate_Dummy)); 154 PetscCall(KSPGuessRegister("dummy", KSPGuessCreate_Dummy)); 155 PetscCall(KSPRegister("dummy", KSPCreate_Dummy)); 156 PetscCall(PCRegister("dummy", PCCreate_Dummy)); 157 PetscCall(DMRegister("dummy", DMCreate_Dummy)); 158 PetscCall(MatOrderingRegister("dummy", MatOrderingCreate_Dummy)); 159 PetscCall(MatPartitioningRegister("dummy", MatPartitioningCreate_Dummy)); 160 PetscCall(MatRegister("dummy", MatCreate_Dummy)); 161 PetscCall(PFRegister("dummy", PFCreate_Dummy)); 162 PetscCall(VecScatterRegister("dummy", VecScatterCreate_Dummy)); 163 PetscCall(VecRegister("dummy", VecCreate_Dummy)); 164 PetscCall(PetscSFRegister("dummy", PetscSFCreate_Dummy)); 165 PetscCall(ISLocalToGlobalMappingRegister("dummy", ISLocalToGlobalMappingCreate_Dummy)); 166 PetscCall(ISRegister("dummy", ISCreate_Dummy)); 167 PetscCall(AORegister("dummy", AOCreate_Dummy)); 168 PetscCall(PetscDrawRegister("dummy", PetscDrawCreate_Dummy)); 169 PetscCall(PetscViewerRegister("dummy", PetscViewerCreate_Dummy)); 170 PetscCall(PetscRandomRegister("dummy", PetscRandomCreate_Dummy)); 171 PetscCall(PetscFinalize()); 172 return 0; 173 } 174 175 /*TEST 176 177 test: 178 179 TEST*/ 180