Skip to content
This repository was archived by the owner on Sep 8, 2021. It is now read-only.

Commit 78da976

Browse files
committed
Updates after feedback #3
1 parent adf23cc commit 78da976

5 files changed

Lines changed: 19 additions & 17 deletions

File tree

engine/src/exec-interface-image.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ void MCImage::SetText(MCExecContext& ctxt, MCDataRef p_text)
358358
MCImageBitmap *t_bitmap = nil;
359359
MCImageCompressedBitmap *t_compressed = nil;
360360
MCPoint t_hotspot;
361-
char *t_name = nil;
361+
MCStringRef t_name = nil;
362362
IO_handle t_stream = nil;
363363
MCAutoDataRef t_data;
364364

@@ -390,7 +390,7 @@ void MCImage::SetText(MCExecContext& ctxt, MCDataRef p_text)
390390

391391
MCImageFreeBitmap(t_bitmap);
392392
MCImageFreeCompressedBitmap(t_compressed);
393-
MCCStringFree(t_name);
393+
MCValueRelease(t_name);
394394
if (t_stream != nil)
395395
MCS_close(t_stream);
396396
}

engine/src/ibmp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1587,7 +1587,7 @@ bool c_get_string_content_bounds(const char *p_line, uindex_t &r_content_start,
15871587
}
15881588

15891589
#define XBM_MAX_LINE 128
1590-
bool MCImageDecodeXBM(IO_handle p_stream, MCPoint &r_hotspot, char *&r_name, MCImageBitmap *&r_bitmap)
1590+
bool MCImageDecodeXBM(IO_handle p_stream, MCPoint &r_hotspot, MCStringRef &r_name, MCImageBitmap *&r_bitmap)
15911591
{
15921592
bool t_success = true;
15931593

@@ -1729,7 +1729,7 @@ bool MCImageDecodeXBM(IO_handle p_stream, MCPoint &r_hotspot, char *&r_name, MCI
17291729
if (t_success)
17301730
{
17311731
r_bitmap = t_bitmap;
1732-
r_name = t_name;
1732+
t_success = MCStringCreateWithCString(t_name, r_name);
17331733
r_hotspot = t_hotspot;
17341734
}
17351735
else

engine/src/iimport.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ bool MCImageDecode(IO_handle p_stream, MCImageFrame *&r_frames, uindex_t &r_fram
158158
MCImageCompressedBitmap *t_compressed = nil;
159159

160160
MCPoint t_hotspot;
161-
char *t_name = nil;
161+
MCStringRef t_name = nil;
162162

163163
if (t_success)
164164
t_success = MCImageImport(p_stream, nil, t_hotspot, t_name, t_compressed, t_bitmap);
@@ -181,7 +181,7 @@ bool MCImageDecode(IO_handle p_stream, MCImageFrame *&r_frames, uindex_t &r_fram
181181

182182
MCImageFreeCompressedBitmap(t_compressed);
183183
MCImageFreeBitmap(t_bitmap);
184-
MCCStringFree(t_name);
184+
MCValueRelease(t_name);
185185

186186
return t_success;
187187
}
@@ -206,7 +206,7 @@ bool MCImageDecode(const uint8_t *p_data, uindex_t p_size, MCImageFrame *&r_fram
206206
}
207207

208208
// if the image is in a directly supported format return the raw data otherwise decode & return the bitmap
209-
bool MCImageImport(IO_handle p_stream, IO_handle p_mask_stream, MCPoint &r_hotspot, char *&r_name, MCImageCompressedBitmap *&r_compressed, MCImageBitmap *&r_bitmap)
209+
bool MCImageImport(IO_handle p_stream, IO_handle p_mask_stream, MCPoint &r_hotspot, MCStringRef&r_name, MCImageCompressedBitmap *&r_compressed, MCImageBitmap *&r_bitmap)
210210
{
211211
bool t_success = true;
212212

@@ -273,9 +273,7 @@ bool MCImageImport(IO_handle p_stream, IO_handle p_mask_stream, MCPoint &r_hotsp
273273
t_success = MCImageDecodeXWD(p_stream, &t_name, t_bitmap);
274274
if (t_success)
275275
{
276-
char *temp;
277-
/* UNCHECKED */ MCStringConvertToCString(*t_name, temp);
278-
r_name = temp;
276+
r_name = MCValueRetain(*t_name);
279277
}
280278

281279
}
@@ -296,7 +294,7 @@ IO_stat MCImage::import(const char *newname, IO_handle stream, IO_handle mstream
296294

297295
MCImageCompressedBitmap *t_compressed = nil;
298296
MCImageBitmap *t_bitmap = nil;
299-
char *t_name = nil;
297+
MCStringRef t_name = nil;
300298
MCPoint t_hotspot = {1, 1};
301299

302300
t_success = MCImageImport(stream, mstream, t_hotspot, t_name, t_compressed, t_bitmap);
@@ -338,7 +336,11 @@ IO_stat MCImage::import(const char *newname, IO_handle stream, IO_handle mstream
338336
}
339337

340338
if (isunnamed() && t_name != nil)
341-
setname_cstring(t_name);
339+
{
340+
MCNewAutoNameRef t_name_nameref;
341+
/* UNCHECKED */ MCNameCreate(t_name, &t_name_nameref);
342+
setname(*t_name_nameref);
343+
}
342344
if (isunnamed() && newname != nil)
343345
{
344346
const char *tname = strrchr(newname, PATH_SEPARATOR);
@@ -351,7 +353,7 @@ IO_stat MCImage::import(const char *newname, IO_handle stream, IO_handle mstream
351353

352354
}
353355

354-
MCCStringFree(t_name);
356+
MCValueRelease(t_name);
355357

356358
return t_success ? IO_NORMAL : IO_ERROR;
357359
}

engine/src/image.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ bool MCImageEncodePBM(MCImageBitmap *p_bitmap, IO_handle p_stream, uindex_t &r_b
7878
bool MCImageEncodePPM(MCImageBitmap *p_bitmap, IO_handle p_stream, uindex_t &r_bytes_written);
7979
bool MCImageDecodeNetPBM(IO_handle p_stream, MCImageBitmap *&r_bitmap);
8080

81-
bool MCImageDecodeXBM(IO_handle p_stream, MCPoint &r_hotspot, char *&r_name, MCImageBitmap *&r_bitmap);
81+
bool MCImageDecodeXBM(IO_handle p_stream, MCPoint &r_hotspot, MCStringRef &r_name, MCImageBitmap *&r_bitmap);
8282
bool MCImageDecodeXPM(IO_handle p_stream, MCImageBitmap *&r_bitmap);
8383
bool MCImageDecodeXWD(IO_handle stream, MCStringRef &r_name, MCImageBitmap *&r_bitmap);
8484

@@ -116,7 +116,7 @@ bool MCImageCompress(MCImageBitmap *p_bitmap, bool p_dither, MCImageCompressedBi
116116
bool MCImageDecompress(MCImageCompressedBitmap *p_compressed, MCImageFrame *&r_frames, uindex_t &r_frame_count);
117117

118118
bool MCImageGetMetafileGeometry(IO_handle p_stream, uindex_t &r_width, uindex_t &r_height);
119-
bool MCImageImport(IO_handle p_stream, IO_handle p_mask_stream, MCPoint &r_hotspot, char *&r_name, MCImageCompressedBitmap *&r_compressed, MCImageBitmap *&r_bitmap);
119+
bool MCImageImport(IO_handle p_stream, IO_handle p_mask_stream, MCPoint &r_hotspot, MCStringRef &r_name, MCImageCompressedBitmap *&r_compressed, MCImageBitmap *&r_bitmap);
120120
bool MCImageExport(MCImageBitmap *p_bitmap, Export_format p_format, MCImagePaletteSettings *p_palette_settings, bool p_dither, IO_handle p_stream, IO_handle p_mask_stream);
121121

122122
bool MCImageDecode(IO_handle p_stream, MCImageFrame *&r_frames, uindex_t &r_frame_count);

engine/src/image_rep_encoded.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ bool MCEncodedImageRep::LoadImageFrames(MCImageFrame *&r_frames, uindex_t &r_fra
5151
MCImageBitmap *t_bitmap = nil;
5252

5353
MCPoint t_hotspot = {1, 1};
54-
char *t_name = nil;
54+
MCStringRef t_name = nil;
5555

5656
t_success = GetDataStream(t_stream) &&
5757
MCImageImport(t_stream, t_mask_stream, t_hotspot, t_name, t_compressed, t_bitmap);
@@ -88,7 +88,7 @@ bool MCEncodedImageRep::LoadImageFrames(MCImageFrame *&r_frames, uindex_t &r_fra
8888
m_have_geometry = true;
8989
}
9090

91-
MCCStringFree(t_name);
91+
MCValueRelease(t_name);
9292

9393
MCImageFreeBitmap(t_bitmap);
9494
MCImageFreeCompressedBitmap(t_compressed);

0 commit comments

Comments
 (0)