This is the changelog for developers, != changelog for the end user
that we distribute with the binaries. (see changelog)
+19/02/2006
+SPoG
+- Fixed crash when loading invalid ASE models.
+
11/02/2006
SPoG
- Added install.py script.
model = PicoModuleLoadModel(module, fileName, buffer, bufSize, frameNum);
}
- _pico_free(buffer);
+ if(model != 0)
+ {
+ _pico_free(buffer);
+ }
/* return */
return model;
int index;
if( numVertices == 0 )
- _ase_error_return("Vertex parse error");
+ _ase_error_return("Texture Vertex parse error");
/* get uv vertex index */
- if (!_pico_parse_int( p,&index ))
- _ase_error_return("UV vertex parse error");
+ if (!_pico_parse_int( p,&index ) || index >= numTextureVertices)
+ _ase_error_return("Texture vertex parse error");
/* get uv vertex s */
if (!_pico_parse_float( p,&texcoords[index].texcoord[0] ))
- _ase_error_return("UV vertex parse error");
+ _ase_error_return("Texture vertex parse error");
/* get uv vertex t */
if (!_pico_parse_float( p,&texcoords[index].texcoord[1] ))
- _ase_error_return("UV vertex parse error");
+ _ase_error_return("Texture vertex parse error");
/* ydnar: invert t */
texcoords[index].texcoord[ 1 ] = 1.0f - texcoords[index].texcoord[ 1 ];
</File>\r
</Filter>\r
<File\r
- RelativePath="..\docs\developer\Changes">\r
+ RelativePath="..\Changes">\r
</File>\r
<File\r
RelativePath="..\debug.py">\r
RelativePath="..\SConstruct">\r
</File>\r
<File\r
- RelativePath="..\docs\developer\Todo">\r
+ RelativePath="..\Todo">\r
</File>\r
<File\r
RelativePath="..\touch.py">\r
return scr;
}
+class GtkTextBufferOutputStream : public TextOutputStream
+{
+ GtkTextBuffer* textBuffer;
+ GtkTextIter* iter;
+ GtkTextTag* tag;
+public:
+ GtkTextBufferOutputStream(GtkTextBuffer* textBuffer, GtkTextIter* iter, GtkTextTag* tag) : textBuffer(textBuffer), iter(iter), tag(tag)
+ {
+ }
+ std::size_t write(const char* buffer, std::size_t length)
+ {
+ gtk_text_buffer_insert_with_tags(textBuffer, iter, buffer, gint(length), tag, 0);
+ return length;
+ }
+};
+
std::size_t Sys_Print(int level, const char* buf, std::size_t length)
{
bool contains_newline = strchr(buf, '\n') != 0;
}
- StringOutputStream converted;
+ GtkTextBufferOutputStream textBuffer(buffer, &iter, tag);
if(!globalCharacterSet().isUTF8())
{
- converted << ConvertLocaleToUTF8(StringRange(buf, buf + length));
+ textBuffer << ConvertLocaleToUTF8(StringRange(buf, buf + length));
}
else
{
- converted << StringRange(buf, buf + length);
+ textBuffer << StringRange(buf, buf + length);
}
- gtk_text_buffer_insert_with_tags(buffer, &iter, converted.c_str(), gint(string_length(converted.c_str())), tag, 0);
-
// update console widget immediatly if we're doing something time-consuming
if(contains_newline)
{