181 { |
181 { |
182 len = (*env)->GetStringUTFLength(env, detail); |
182 len = (*env)->GetStringUTFLength(env, detail); |
183 detail_str = (char *)SAFE_SIZE_ARRAY_ALLOC(malloc, |
183 detail_str = (char *)SAFE_SIZE_ARRAY_ALLOC(malloc, |
184 sizeof(char), len + 1); |
184 sizeof(char), len + 1); |
185 if (detail_str == NULL) { |
185 if (detail_str == NULL) { |
|
186 free(stock_id_str); |
186 JNU_ThrowOutOfMemoryError(env, "OutOfMemoryError"); |
187 JNU_ThrowOutOfMemoryError(env, "OutOfMemoryError"); |
187 return JNI_FALSE; |
188 return JNI_FALSE; |
188 } |
189 } |
189 (*env)->GetStringUTFRegion(env, detail, 0, len, detail_str); |
190 (*env)->GetStringUTFRegion(env, detail, 0, len, detail_str); |
190 } |
191 } |
191 |
192 |
192 if (!init_method(env, this) ) { |
193 if (!init_method(env, this) ) { |
|
194 free(stock_id_str); |
|
195 if (detail_str != NULL) { |
|
196 free(detail_str); |
|
197 } |
193 return JNI_FALSE; |
198 return JNI_FALSE; |
194 } |
199 } |
195 jboolean result = gtk->get_icon_data(env, widget_type, stock_id_str, |
200 jboolean result = gtk->get_icon_data(env, widget_type, stock_id_str, |
196 icon_size, text_direction, detail_str, |
201 icon_size, text_direction, detail_str, |
197 icon_upcall_method, this); |
202 icon_upcall_method, this); |