-Fix parsing of comments in VariantParser, fixes #3175

This commit is contained in:
Juan Linietsky 2015-12-31 10:25:21 -03:00
parent b60a3e7202
commit 586e482a98
3 changed files with 57 additions and 1 deletions

View File

@ -120,6 +120,20 @@ Error VariantParser::get_token(Stream *p_stream, Token& r_token, int &line, Stri
r_token.type=TK_COLON;
return OK;
};
case ';': {
while(true) {
CharType ch=p_stream->get_char();
if (p_stream->is_eof()) {
r_token.type=TK_EOF;
return OK;
}
if (ch=='\n')
break;
}
break;
};
case ',': {
r_token.type=TK_COMMA;
@ -1591,6 +1605,18 @@ Error VariantParser::parse_tag_assign_eof(Stream *p_stream, int &line, String &r
if (p_stream->is_eof())
return ERR_FILE_EOF;
if (c==';') { //comment
while(true) {
CharType ch=p_stream->get_char();
if (p_stream->is_eof()) {
return ERR_FILE_EOF;
}
if (ch=='\n')
break;
}
continue;
}
if (c=='[' && what.length()==0) {
//it's a tag!
p_stream->saved='['; //go back one

View File

@ -1056,6 +1056,33 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
void OS_OSX::finalize() {
CFNotificationCenterRemoveObserver(CFNotificationCenterGetDistributedCenter(), NULL, kTISNotifySelectedKeyboardInputSourceChanged, NULL);
delete_main_loop();
spatial_sound_server->finish();
memdelete(spatial_sound_server);
spatial_sound_2d_server->finish();
memdelete(spatial_sound_2d_server);
memdelete(input);
memdelete(sample_manager);
audio_server->finish();
memdelete(audio_server);
visual_server->finish();
memdelete(visual_server);
memdelete(rasterizer);
physics_server->finish();
memdelete(physics_server);
physics_2d_server->finish();
memdelete(physics_2d_server);
screens.clear();
}
@ -1068,6 +1095,8 @@ void OS_OSX::set_main_loop( MainLoop * p_main_loop ) {
void OS_OSX::delete_main_loop() {
if (!main_loop)
return;
memdelete(main_loop);
main_loop=NULL;
}

View File

@ -447,6 +447,8 @@ void OS_X11::finalize() {
// memdelete(debugger_connection_console);
//}
memdelete(input);
memdelete(sample_manager);
audio_server->finish();
@ -464,7 +466,6 @@ void OS_X11::finalize() {
#ifdef JOYDEV_ENABLED
memdelete(joystick);
#endif
memdelete(input);
XUnmapWindow( x11_display, x11_window );
XDestroyWindow( x11_display, x11_window );