@@ -29,12 +29,12 @@ struct myGlobalData
2929 myData** bufMyData;
3030};
3131
32- void allocData (myGlobalData * dataP ) {
33- for (size_t i = 0 ; i < dataP-> sizeInt ; i++)
32+ void allocData (myData ** bufMyData ) {
33+ for (size_t i = 0 ; i < 10 ; i++)
3434 {
35- dataP-> bufMyData [i] = new myData;
36- dataP-> bufMyData [i]->sizeInt = 10 ;
37- dataP-> bufMyData [i]->buffer = new char [dataP-> bufMyData [i]-> sizeInt ];
35+ bufMyData[i] = new myData;
36+ bufMyData[i]->sizeInt = 10 ;
37+ bufMyData[i]->buffer = new char [10 ];
3838 }
3939}
4040
@@ -47,68 +47,68 @@ void throwFunction2(int a) {
4747}
4848void funcWork1b () {
4949 int a;
50- myGlobalData *valData = new myGlobalData ;
50+ myData **bufMyData ;
5151
5252 try {
5353 cleanFunction ();
5454 throwFunction (a);
55- valData-> sizeInt = 10 ;
56- valData-> bufMyData = new myData*[valData-> sizeInt ];
55+
56+ bufMyData = new myData*[10 ];
5757 cleanFunction ();
58- allocData (valData );
58+ allocData (bufMyData );
5959 cleanFunction ();
6060
6161 }
6262 catch (...)
6363 {
64- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
64+ for (size_t i = 0 ; i < 10 ; i++)
6565 {
66- delete[] valData-> bufMyData [i]->buffer ; // BAD
67- delete valData-> bufMyData [i];
66+ delete[] bufMyData[i]->buffer ; // BAD
67+ delete bufMyData[i];
6868 }
69- delete [] valData-> bufMyData ;
70- delete valData;
69+ delete [] bufMyData;
70+
7171 }
7272}
7373
7474void funcWork1 () {
7575 int a;
7676 int i;
77- myGlobalData *valData = new myGlobalData ;
78- valData-> sizeInt = 10 ;
79- valData-> bufMyData = new myData*[valData-> sizeInt ];
80- for (i = 0 ; i < valData-> sizeInt ; i++)
81- valData-> bufMyData [i] = 0 ;
77+ myData **bufMyData ;
78+
79+ bufMyData = new myData*[10 ];
80+ for (i = 0 ; i < 10 ; i++)
81+ bufMyData[i] = 0 ;
8282 try {
8383 cleanFunction ();
8484 throwFunction (a);
8585 cleanFunction ();
86- allocData (valData );
86+ allocData (bufMyData );
8787 cleanFunction ();
8888
8989 }
9090 catch (...)
9191 {
92- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
92+ for (size_t i = 0 ; i < 10 ; i++)
9393 {
94- if (valData-> bufMyData [i])
95- delete[] valData-> bufMyData [i]->buffer ; // GOOD
96- delete valData-> bufMyData [i];
94+ if (bufMyData[i])
95+ delete[] bufMyData[i]->buffer ; // GOOD
96+ delete bufMyData[i];
9797 }
98- delete [] valData-> bufMyData ;
99- delete valData;
98+ delete [] bufMyData;
99+
100100 }
101101}
102102
103103void funcWork2 () {
104104 int a;
105- myGlobalData *valData = new myGlobalData ;
106- valData-> sizeInt = 10 ;
107- valData-> bufMyData = new myData*[valData-> sizeInt ];
105+ myData **bufMyData ;
106+
107+ bufMyData = new myData*[10 ];
108108 try {
109109 do {
110110 cleanFunction ();
111- allocData (valData );
111+ allocData (bufMyData );
112112 cleanFunction ();
113113 throwFunction (a);
114114
@@ -118,36 +118,36 @@ void funcWork2() {
118118 }
119119 catch (...)
120120 {
121- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
121+ for (size_t i = 0 ; i < 10 ; i++)
122122 {
123- delete[] valData-> bufMyData [i]->buffer ; // GOOD
124- delete valData-> bufMyData [i];
123+ delete[] bufMyData[i]->buffer ; // GOOD
124+ delete bufMyData[i];
125125 }
126- delete [] valData-> bufMyData ;
127- delete valData;
126+ delete [] bufMyData;
127+
128128 }
129129}
130130void funcWork3 () {
131131 int a;
132- myGlobalData *valData = new myGlobalData ;
133- valData-> sizeInt = 10 ;
134- valData-> bufMyData = new myData*[valData-> sizeInt ];
132+ myData **bufMyData ;
133+
134+ bufMyData = new myData*[10 ];
135135 try {
136136 cleanFunction ();
137- allocData (valData );
137+ allocData (bufMyData );
138138 cleanFunction ();
139139 throwFunction (a);
140140
141141 }
142142 catch (...)
143143 {
144- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
144+ for (size_t i = 0 ; i < 10 ; i++)
145145 {
146- delete[] valData-> bufMyData [i]->buffer ; // GOOD
147- delete valData-> bufMyData [i];
146+ delete[] bufMyData[i]->buffer ; // GOOD
147+ delete bufMyData[i];
148148 }
149- delete [] valData-> bufMyData ;
150- delete valData;
149+ delete [] bufMyData;
150+
151151 }
152152}
153153
0 commit comments