From 806d09b1143894ad66cea2c228f467e8c39a8adf Mon Sep 17 00:00:00 2001 From: Graham Madarasz Date: Tue, 30 Apr 2013 19:50:05 -0700 Subject: Merge 3.5.1 into Materials --- indra/lscript/lscript_compile/CMakeLists.txt | 9 ++++++- indra/lscript/lscript_compile/bison.bat | 9 +++---- indra/lscript/lscript_compile/indra.l | 29 +++++++++++++++++++++++ indra/lscript/lscript_compile/indra.y | 5 ++++ indra/lscript/lscript_execute/CMakeLists.txt | 3 +++ indra/lscript/lscript_execute/lscript_execute.cpp | 11 +-------- indra/lscript/lscript_execute/lscript_readlso.cpp | 9 +++---- indra/lscript/lscript_library/CMakeLists.txt | 3 +++ 8 files changed, 57 insertions(+), 21 deletions(-) (limited to 'indra/lscript') diff --git a/indra/lscript/lscript_compile/CMakeLists.txt b/indra/lscript/lscript_compile/CMakeLists.txt index 3ed2892e0e..07662005b9 100644 --- a/indra/lscript/lscript_compile/CMakeLists.txt +++ b/indra/lscript/lscript_compile/CMakeLists.txt @@ -45,6 +45,9 @@ include_directories( ${LLPRIMITIVE_INCLUDE_DIRS} ${LSCRIPT_INCLUDE_DIRS} ) +include_directories(SYSTEM + ${LLCOMMON_SYSTEM_INCLUDE_DIRS} + ) set(lscript_generated_SOURCE_FILES indra.l.cpp @@ -95,6 +98,7 @@ add_custom_command( ${CMAKE_CURRENT_BINARY_DIR}/indra.l.cpp COMMAND ${FLEX} ARGS + -P indra_ -o${CMAKE_CURRENT_BINARY_DIR}/indra.l.cpp ${CMAKE_CURRENT_SOURCE_DIR}/indra.l DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indra.l @@ -112,8 +116,10 @@ if (WINDOWS) ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp ${CMAKE_CURRENT_BINARY_DIR}/indra.y.hpp COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bison.bat + ARGS ${BISON} ${M4_PATH} - ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp + -p indra_ + -d -o ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp ${CMAKE_CURRENT_SOURCE_DIR}/indra.y DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bison.bat @@ -128,6 +134,7 @@ else (WINDOWS) COMMAND ${BISON} ARGS + -p indra_ -d -o ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp ${CMAKE_CURRENT_SOURCE_DIR}/indra.y DEPENDS diff --git a/indra/lscript/lscript_compile/bison.bat b/indra/lscript/lscript_compile/bison.bat index 0baff4e5ef..d40997225e 100644 --- a/indra/lscript/lscript_compile/bison.bat +++ b/indra/lscript/lscript_compile/bison.bat @@ -2,10 +2,11 @@ @REM find m4, even if neither program is present in PATH. @set bison=%1 -set M4PATH=%2 +shift +set M4PATH=%1 +shift set M4= -@set output=%3 -@set input=%4 set PATH=%M4PATH%;%PATH% -%bison% -d -o %output% %input% +@REM %* does not work with shift... +%bison% %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l index 96b7e57e97..9132d5d528 100644 --- a/indra/lscript/lscript_compile/indra.l +++ b/indra/lscript/lscript_compile/indra.l @@ -56,11 +56,40 @@ void parse_string(); #define ECHO do { } while (0) +#define yyparse indra_parse +#define yyerror indra_error +#define yylval indra_lval +#define yy_create_buffer indra__create_buffer +#define yy_delete_buffer indra__delete_buffer +#define yy_flex_debug indra__flex_debug +#define yy_init_buffer indra__init_buffer +#define yy_flush_buffer indra__flush_buffer +#define yy_load_buffer_state indra__load_buffer_state +#define yy_switch_to_buffer indra__switch_to_buffer +#define yyin indra_in +#define yyleng indra_leng +#define yylex indra_lex +#define yylineno indra_lineno +#define yyout indra_out +#define yyrestart indra_restart +#define yytext indra_text +#define yywrap indra_wrap +#define yyalloc indra_alloc +#define yyrealloc indra_realloc +#define yyfree indra_free + + +#if LL_WINDOWS #if defined(__cplusplus) extern "C" { int yylex( void ); } extern "C" { int yyparse( void ); } extern "C" { int yyerror(const char *fmt, ...); } #endif +#else +int yylex( void ); +int yyparse( void ); +int yyerror(const char *fmt, ...); +#endif %} diff --git a/indra/lscript/lscript_compile/indra.y b/indra/lscript/lscript_compile/indra.y index e4b10ffdd9..9c2ed02f72 100644 --- a/indra/lscript/lscript_compile/indra.y +++ b/indra/lscript/lscript_compile/indra.y @@ -2,8 +2,10 @@ #include "linden_common.h" #include "lscript_tree.h" + #if LL_WINDOWS #ifdef __cplusplus extern "C" { + #endif #endif int yylex(void); @@ -20,9 +22,12 @@ #pragma warning( disable : 4065 ) // warning: switch statement contains 'default' but no 'case' labels #endif + #if LL_WINDOWS #ifdef __cplusplus } #endif + #endif + %} %union diff --git a/indra/lscript/lscript_execute/CMakeLists.txt b/indra/lscript/lscript_execute/CMakeLists.txt index 3a16ffdc01..49605982a8 100644 --- a/indra/lscript/lscript_execute/CMakeLists.txt +++ b/indra/lscript/lscript_execute/CMakeLists.txt @@ -10,6 +10,9 @@ include_directories( ${LLMATH_INCLUDE_DIRS} ${LSCRIPT_INCLUDE_DIRS} ) +include_directories(SYSTEM + ${LLCOMMON_SYSTEM_INCLUDE_DIRS} + ) set(lscript_execute_SOURCE_FILES llscriptresource.cpp diff --git a/indra/lscript/lscript_execute/lscript_execute.cpp b/indra/lscript/lscript_execute/lscript_execute.cpp index d79e9f8bde..b12d2e4a16 100644 --- a/indra/lscript/lscript_execute/lscript_execute.cpp +++ b/indra/lscript/lscript_execute/lscript_execute.cpp @@ -806,16 +806,7 @@ void LLScriptExecute::runInstructions(BOOL b_print, const LLUUID &id, // is there a fault? // if yes, print out message and exit S32 value = getVersion(); - S32 major_version = 0; - if (value == LSL2_VERSION1_END_NUMBER) - { - major_version = 1; - } - else if (value == LSL2_VERSION_NUMBER) - { - major_version = 2; - } - else + if ( (value != LSL2_VERSION1_END_NUMBER) && (value != LSL2_VERSION_NUMBER) ) { setFault(LSRF_VERSION_MISMATCH); } diff --git a/indra/lscript/lscript_execute/lscript_readlso.cpp b/indra/lscript/lscript_execute/lscript_readlso.cpp index 35caa41ae1..8b41cb5a72 100644 --- a/indra/lscript/lscript_execute/lscript_readlso.cpp +++ b/indra/lscript/lscript_execute/lscript_readlso.cpp @@ -123,7 +123,7 @@ void LLScriptLSOParse::printRegisters(LLFILE *fp) void LLScriptLSOParse::printGlobals(LLFILE *fp) { // print out registers first - S32 offset, varoffset; + S32 varoffset; S32 ivalue; F32 fpvalue; LLVector3 vvalue; @@ -144,7 +144,7 @@ void LLScriptLSOParse::printGlobals(LLFILE *fp) // get offset to skip past name varoffset = global_v_offset; - offset = bytestream2integer(mRawData, global_v_offset); + bytestream2integer(mRawData, global_v_offset); // get typeexport type = *(mRawData + global_v_offset++); @@ -262,8 +262,6 @@ void LLScriptLSOParse::printGlobalFunctions(LLFILE *fp) fprintf(fp, "[Function #%d] [0x%X] %s\n", function_number, orig_function_offset, name); fprintf(fp, "\tReturn Type: %s\n", LSCRIPTTypeNames[type]); type = *(mRawData + function_offset++); - S32 params; - params = 0; S32 pcount = 0; while (type) { @@ -347,7 +345,6 @@ void LLScriptLSOParse::printStates(LLFILE *fp) read_ahead = event_jump_table; S32 temp_end; - S32 dummy; opcode_end = worst_case_opcode_end; @@ -356,7 +353,7 @@ void LLScriptLSOParse::printStates(LLFILE *fp) if (event_handlers & LSCRIPTStateBitField[k]) { temp_end = bytestream2integer(mRawData, read_ahead); - dummy = bytestream2integer(mRawData, read_ahead); + bytestream2integer(mRawData, read_ahead); if ( (temp_end < opcode_end) &&(temp_end > event_offset)) { diff --git a/indra/lscript/lscript_library/CMakeLists.txt b/indra/lscript/lscript_library/CMakeLists.txt index f6bc67a994..5af850c41b 100644 --- a/indra/lscript/lscript_library/CMakeLists.txt +++ b/indra/lscript/lscript_library/CMakeLists.txt @@ -28,5 +28,8 @@ include_directories( ${LLMATH_INCLUDE_DIRS} ${LSCRIPT_INCLUDE_DIRS} ) +include_directories(SYSTEM + ${LLCOMMON_SYSTEM_INCLUDE_DIRS} + ) add_library (lscript_library ${lscript_library_SOURCE_FILES}) -- cgit v1.3 From f2455ccaafec1b583d714b119dd68ec8b4165519 Mon Sep 17 00:00:00 2001 From: Graham Madarasz Date: Fri, 10 May 2013 16:10:25 -0700 Subject: Put back normal map and spec map initializers/destruction, delete FMOD refs (unneeded with FMODEX), make indra.l/y safe for bison >= 2.7 --- indra/cmake/CMakeLists.txt | 1 - indra/cmake/FMOD.cmake | 39 ------------------------------- indra/cmake/FindFMOD.cmake | 44 ----------------------------------- indra/llrender/llimagegl.cpp | 3 +++ indra/lscript/lscript_compile/indra.l | 8 ------- indra/lscript/lscript_compile/indra.y | 12 ---------- indra/newview/llviewerobject.cpp | 14 +++++++++++ 7 files changed, 17 insertions(+), 104 deletions(-) delete mode 100644 indra/cmake/FMOD.cmake delete mode 100644 indra/cmake/FindFMOD.cmake (limited to 'indra/lscript') diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index 111f5897dd..10a23ea068 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -24,7 +24,6 @@ set(cmake_SOURCE_FILES DragDrop.cmake EXPAT.cmake ExamplePlugin.cmake - FMOD.cmake FindAPR.cmake FindAutobuild.cmake FindBerkeleyDB.cmake diff --git a/indra/cmake/FMOD.cmake b/indra/cmake/FMOD.cmake deleted file mode 100644 index 3586c1160a..0000000000 --- a/indra/cmake/FMOD.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# -*- cmake -*- - -# FMOD can be set when launching the make using the argument -DFMOD:BOOL=ON -# When building using proprietary binaries though (i.e. having access to LL private servers), -# we always build with FMOD. -# Open source devs should use the -DFMOD:BOOL=ON then if they want to build with FMOD, whether -# they are using STANDALONE or not. -if (INSTALL_PROPRIETARY) - set(FMOD ON CACHE BOOL "Use FMOD sound library.") -endif (INSTALL_PROPRIETARY) - -if (FMOD) - if (STANDALONE) - # In that case, we use the version of the library installed on the system - set(FMOD_FIND_REQUIRED ON) - include(FindFMOD) - else (STANDALONE) - if (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - # If the path have been specified in the arguments, use that - set(FMOD_LIBRARIES ${FMOD_LIBRARY}) - MESSAGE(STATUS "Using FMOD path: ${FMOD_LIBRARIES}, ${FMOD_INCLUDE_DIR}") - else (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - # If not, we're going to try to get the package listed in autobuild.xml - # Note: if you're not using INSTALL_PROPRIETARY, the package URL should be local (file:/// URL) - # as accessing the private LL location will fail if you don't have the credential - include(Prebuilt) - use_prebuilt_binary(fmod) - if (WINDOWS) - set(FMOD_LIBRARY fmod) - elseif (DARWIN) - set(FMOD_LIBRARY fmod) - elseif (LINUX) - set(FMOD_LIBRARY fmod-3.75) - endif (WINDOWS) - set(FMOD_LIBRARIES ${FMOD_LIBRARY}) - set(FMOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) - endif (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - endif (STANDALONE) -endif (FMOD) diff --git a/indra/cmake/FindFMOD.cmake b/indra/cmake/FindFMOD.cmake deleted file mode 100644 index 1ebbc8c96e..0000000000 --- a/indra/cmake/FindFMOD.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# -*- cmake -*- - -# - Find FMOD -# Find the FMOD includes and library -# This module defines -# FMOD_INCLUDE_DIR, where to find fmod.h and fmod_errors.h -# FMOD_LIBRARIES, the libraries needed to use FMOD. -# FMOD, If false, do not try to use FMOD. -# also defined, but not for general use are -# FMOD_LIBRARY, where to find the FMOD library. - -FIND_PATH(FMOD_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod) - -SET(FMOD_NAMES ${FMOD_NAMES} fmod fmodvc fmodex fmod-3.75) -FIND_LIBRARY(FMOD_LIBRARY - NAMES ${FMOD_NAMES} - PATH_SUFFIXES fmod - ) - -IF (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - SET(FMOD_LIBRARIES ${FMOD_LIBRARY}) - SET(FMOD_FOUND "YES") -ELSE (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - SET(FMOD_FOUND "NO") -ENDIF (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - -IF (FMOD_FOUND) - IF (NOT FMOD_FIND_QUIETLY) - MESSAGE(STATUS "Found FMOD: ${FMOD_LIBRARIES}") - ENDIF (NOT FMOD_FIND_QUIETLY) -ELSE (FMOD_FOUND) - IF (FMOD_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find FMOD library") - ENDIF (FMOD_FIND_REQUIRED) -ENDIF (FMOD_FOUND) - -# Deprecated declarations. -SET (NATIVE_FMOD_INCLUDE_PATH ${FMOD_INCLUDE_DIR} ) -GET_FILENAME_COMPONENT (NATIVE_FMOD_LIB_PATH ${FMOD_LIBRARY} PATH) - -MARK_AS_ADVANCED( - FMOD_LIBRARY - FMOD_INCLUDE_DIR - ) diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index e0fe9e783d..bcbd155423 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -773,7 +773,10 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips) { S32 bytes = w * h * mComponents; #ifdef SHOW_ASSERT + llassert(prev_mip_data); + llassert(cur_mip_size == bytes*4); #endif + U8* new_data = new U8[bytes]; #ifdef SHOW_ASSERT diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l index 9132d5d528..1bb38bbf65 100644 --- a/indra/lscript/lscript_compile/indra.l +++ b/indra/lscript/lscript_compile/indra.l @@ -79,17 +79,9 @@ void parse_string(); #define yyfree indra_free -#if LL_WINDOWS -#if defined(__cplusplus) -extern "C" { int yylex( void ); } -extern "C" { int yyparse( void ); } -extern "C" { int yyerror(const char *fmt, ...); } -#endif -#else int yylex( void ); int yyparse( void ); int yyerror(const char *fmt, ...); -#endif %} diff --git a/indra/lscript/lscript_compile/indra.y b/indra/lscript/lscript_compile/indra.y index 9c2ed02f72..a0a034d21c 100644 --- a/indra/lscript/lscript_compile/indra.y +++ b/indra/lscript/lscript_compile/indra.y @@ -2,12 +2,6 @@ #include "linden_common.h" #include "lscript_tree.h" - #if LL_WINDOWS - #ifdef __cplusplus - extern "C" { - #endif - #endif - int yylex(void); int yyparse( void ); int yyerror(const char *fmt, ...); @@ -22,12 +16,6 @@ #pragma warning( disable : 4065 ) // warning: switch statement contains 'default' but no 'case' labels #endif - #if LL_WINDOWS - #ifdef __cplusplus - } - #endif - #endif - %} %union diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 96e701a6cb..2965d968a3 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -201,6 +201,8 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe mTotalCRC(0), mListIndex(-1), mTEImages(NULL), + mTENormalMaps(NULL), + mTESpecularMaps(NULL), mGLName(0), mbCanSelect(TRUE), mFlags(0), @@ -321,6 +323,18 @@ void LLViewerObject::deleteTEImages() { delete[] mTEImages; mTEImages = NULL; + + if (mTENormalMaps != NULL) + { + delete[] mTENormalMaps; + mTENormalMaps = NULL; + } + + if (mTESpecularMaps != NULL) + { + delete[] mTESpecularMaps; + mTESpecularMaps = NULL; + } } void LLViewerObject::markDead() -- cgit v1.3