@@ -29,12 +29,12 @@ struct myGlobalData
29
29
myData** bufMyData;
30
30
};
31
31
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++)
34
34
{
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 ];
38
38
}
39
39
}
40
40
@@ -47,68 +47,68 @@ void throwFunction2(int a) {
47
47
}
48
48
void funcWork1b () {
49
49
int a;
50
- myGlobalData *valData = new myGlobalData ;
50
+ myData **bufMyData ;
51
51
52
52
try {
53
53
cleanFunction ();
54
54
throwFunction (a);
55
- valData-> sizeInt = 10 ;
56
- valData-> bufMyData = new myData*[valData-> sizeInt ];
55
+
56
+ bufMyData = new myData*[10 ];
57
57
cleanFunction ();
58
- allocData (valData );
58
+ allocData (bufMyData );
59
59
cleanFunction ();
60
60
61
61
}
62
62
catch (...)
63
63
{
64
- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
64
+ for (size_t i = 0 ; i < 10 ; i++)
65
65
{
66
- delete[] valData-> bufMyData [i]->buffer ; // BAD
67
- delete valData-> bufMyData [i];
66
+ delete[] bufMyData[i]->buffer ; // BAD
67
+ delete bufMyData[i];
68
68
}
69
- delete [] valData-> bufMyData ;
70
- delete valData;
69
+ delete [] bufMyData;
70
+
71
71
}
72
72
}
73
73
74
74
void funcWork1 () {
75
75
int a;
76
76
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 ;
82
82
try {
83
83
cleanFunction ();
84
84
throwFunction (a);
85
85
cleanFunction ();
86
- allocData (valData );
86
+ allocData (bufMyData );
87
87
cleanFunction ();
88
88
89
89
}
90
90
catch (...)
91
91
{
92
- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
92
+ for (size_t i = 0 ; i < 10 ; i++)
93
93
{
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];
97
97
}
98
- delete [] valData-> bufMyData ;
99
- delete valData;
98
+ delete [] bufMyData;
99
+
100
100
}
101
101
}
102
102
103
103
void funcWork2 () {
104
104
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 ];
108
108
try {
109
109
do {
110
110
cleanFunction ();
111
- allocData (valData );
111
+ allocData (bufMyData );
112
112
cleanFunction ();
113
113
throwFunction (a);
114
114
@@ -118,36 +118,36 @@ void funcWork2() {
118
118
}
119
119
catch (...)
120
120
{
121
- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
121
+ for (size_t i = 0 ; i < 10 ; i++)
122
122
{
123
- delete[] valData-> bufMyData [i]->buffer ; // GOOD
124
- delete valData-> bufMyData [i];
123
+ delete[] bufMyData[i]->buffer ; // GOOD
124
+ delete bufMyData[i];
125
125
}
126
- delete [] valData-> bufMyData ;
127
- delete valData;
126
+ delete [] bufMyData;
127
+
128
128
}
129
129
}
130
130
void funcWork3 () {
131
131
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 ];
135
135
try {
136
136
cleanFunction ();
137
- allocData (valData );
137
+ allocData (bufMyData );
138
138
cleanFunction ();
139
139
throwFunction (a);
140
140
141
141
}
142
142
catch (...)
143
143
{
144
- for (size_t i = 0 ; i < valData-> sizeInt ; i++)
144
+ for (size_t i = 0 ; i < 10 ; i++)
145
145
{
146
- delete[] valData-> bufMyData [i]->buffer ; // GOOD
147
- delete valData-> bufMyData [i];
146
+ delete[] bufMyData[i]->buffer ; // GOOD
147
+ delete bufMyData[i];
148
148
}
149
- delete [] valData-> bufMyData ;
150
- delete valData;
149
+ delete [] bufMyData;
150
+
151
151
}
152
152
}
153
153
0 commit comments