Projects
Essentials
lightspark
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 121
View file
lightspark.spec
Changed
@@ -20,14 +20,13 @@ %bcond_without librtmp Name: lightspark -Version: 0.7.2.99+git20161015.1649 +Version: 0.7.2.99+git20161023.1408 Release: 0 Summary: Modern, free, open-source flash player implementation License: LGPL-3.0+ Group: Productivity/Multimedia/Other Url: https://launchpad.net/lightspark/ Source0: lightspark.tar.xz -Source1: 0001-FFMPEG_INCLUDE_DIRS-must-be-a-list-not-a-string.patch BuildRequires: boost-devel BuildRequires: cmake BuildRequires: desktop-file-utils @@ -86,7 +85,6 @@ %prep %setup -q -n %{name} -patch --merge -p1 < %{S:1} %build mkdir build
View file
0001-FFMPEG_INCLUDE_DIRS-must-be-a-list-not-a-string.patch
Deleted
@@ -1,31 +0,0 @@ -From a62159e74fae5eda9dc5dfd3a8fb4229bf10eeab Mon Sep 17 00:00:00 2001 -From: Johannes Obermayr <johannesobermayr@gmx.de> -Date: Thu, 20 Oct 2016 20:02:00 +0200 -Subject: [PATCH] FFMPEG_INCLUDE_DIRS must be a list not a string. - -Changes CXX_INCLUDES: -- ... -I"/usr/include/ffmpeg /usr/include/ffmpeg" ... -+ ... -I/usr/include/ffmpeg ... - -Fixes: -src/backends/decoder.h:29:32: fatal error: libavcodec/avcodec.h: No such file or directory ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 92f8560..9c0feb1 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -296,7 +296,7 @@ IF(ENABLE_LIBAVCODEC) - INCLUDE(CheckFunctionExists REQUIRED) - INCLUDE(CheckCSourceCompiles) - SET(FFMPEG_FLAGS "${LIBAVCODEC_CFLAGS} ${LIBAVRESAMPLE_FLAGS}") -- SET(FFMPEG_INCLUDE_DIRS "${FFMPEG_INCLUDE_DIRS} ${LIBAVRESAMPLE_INCLUDE_DIRS}") -+ SET(FFMPEG_INCLUDE_DIRS "${FFMPEG_INCLUDE_DIRS};${LIBAVRESAMPLE_INCLUDE_DIRS}") - SET(FFMPEG_LIBRARIES "${FFMPEG_LIBRARIES};${LIBAVRESAMPLE_LIBRARIES}") - SET(CMAKE_REQUIRED_FLAGS ${FFMPEG_FLAGS}) - SET(CMAKE_REQUIRED_INCLUDES ${FFMPEG_INCLUDE_DIRS}) --- -2.10.1 -
View file
lightspark.tar.xz/CMakeLists.txt
Changed
@@ -296,7 +296,7 @@ INCLUDE(CheckFunctionExists REQUIRED) INCLUDE(CheckCSourceCompiles) SET(FFMPEG_FLAGS "${LIBAVCODEC_CFLAGS} ${LIBAVRESAMPLE_FLAGS}") - SET(FFMPEG_INCLUDE_DIRS "${FFMPEG_INCLUDE_DIRS} ${LIBAVRESAMPLE_INCLUDE_DIRS}") + SET(FFMPEG_INCLUDE_DIRS "${FFMPEG_INCLUDE_DIRS};${LIBAVRESAMPLE_INCLUDE_DIRS}") SET(FFMPEG_LIBRARIES "${FFMPEG_LIBRARIES};${LIBAVRESAMPLE_LIBRARIES}") SET(CMAKE_REQUIRED_FLAGS ${FFMPEG_FLAGS}) SET(CMAKE_REQUIRED_INCLUDES ${FFMPEG_INCLUDE_DIRS})
View file
lightspark.tar.xz/conf/FindLLVM.cmake
Changed
@@ -213,11 +213,13 @@ check_include_file_cxx("llvm/IR/DataLayout.h" HAVE_IR_DATALAYOUT_H) check_include_file_cxx("llvm/IR/Verifier.h" HAVE_IR_VERIFIER_H) check_include_file_cxx("llvm/PassManager.h" HAVE_PASSMANAGER_H) + check_include_file_cxx("llvm/Transforms/Scalar/GVN.h" HAVE_TRANSFORMS_SCALAR_GVN_H) unset(CMAKE_REQUIRED_INCLUDES) MESSAGE(STATUS "HAVE_DATALAYOUT_H: " ${HAVE_DATALAYOUT_H}) MESSAGE(STATUS "HAVE_IR_DATALAYOUT_H: " ${HAVE_IR_DATALAYOUT_H}) MESSAGE(STATUS "HAVE_IR_VERIFIER_H: " ${HAVE_IR_VERIFIER_H}) MESSAGE(STATUS "HAVE_PASSMANAGER_H: " ${HAVE_PASSMANAGER_H}) + MESSAGE(STATUS "HAVE_TRANSFORMS_SCALAR_GVN_H:" ${HAVE_TRANSFORMS_SCALAR_GVN_H}) IF(HAVE_DATALAYOUT_H) ADD_DEFINITIONS(-DHAVE_DATALAYOUT_H) ENDIF(HAVE_DATALAYOUT_H) @@ -230,6 +232,9 @@ IF(HAVE_PASSMANAGER_H) ADD_DEFINITIONS(-DHAVE_PASSMANAGER_H) ENDIF(HAVE_PASSMANAGER_H) + IF(HAVE_TRANSFORMS_SCALAR_GVN_H) + ADD_DEFINITIONS(-DHAVE_TRANSFORMS_SCALAR_GVN_H) + ENDIF(HAVE_TRANSFORMS_SCALAR_GVN_H) if(LLVM_INCLUDE_DIR)
View file
lightspark.tar.xz/src/allclasses.h
Changed
@@ -63,6 +63,8 @@ //Desktop (AIR) REGISTER_CLASS_NAME(NativeApplication,"flash.desktop") +REGISTER_CLASS_NAME(NativeDragManager,"flash.desktop") + //Display REGISTER_CLASS_NAME(AVM1Movie,"flash.display") @@ -129,6 +131,7 @@ REGISTER_CLASS_NAME(InvokeEvent,"flash.events") REGISTER_CLASS_NAME(KeyboardEvent,"flash.events") REGISTER_CLASS_NAME(MouseEvent,"flash.events") +REGISTER_CLASS_NAME(NativeDragEvent,"flash.events") REGISTER_CLASS_NAME(NetStatusEvent,"flash.events") REGISTER_CLASS_NAME(PressAndTapGestureEvent,"flash.events") REGISTER_CLASS_NAME(ProgressEvent,"flash.events") @@ -148,6 +151,7 @@ REGISTER_CLASS_NAME(ExternalInterface,"flash.external") //filesystem +REGISTER_CLASS_NAME2(ASFile,"File","flash.filesystem") REGISTER_CLASS_NAME(FileStream,"flash.filesystem") //Filters @@ -186,6 +190,7 @@ REGISTER_CLASS_NAME(VideoStatus,"flash.media") //Net +REGISTER_CLASS_NAME(FileReference,"flash.net") REGISTER_CLASS_NAME(LocalConnection,"flash.net") REGISTER_CLASS_NAME(NetConnection,"flash.net") REGISTER_CLASS_NAME(NetGroup,"flash.net")
View file
lightspark.tar.xz/src/backends/input.cpp
Changed
@@ -112,7 +112,11 @@ { int stageX, stageY; m_sys->windowToStageCoordinates(event->wheel.x,event->wheel.y,stageX,stageY); +#if SDL_VERSION_ATLEAST(2, 0, 4) handleScrollEvent(stageX,stageY,event->wheel.direction,SDL_GetModState(),false); +#else + handleScrollEvent(stageX,stageY,1,SDL_GetModState(),false); +#endif ret=TRUE; break; } @@ -254,13 +258,15 @@ if(m_sys->currentVm == NULL) return; - int delta; - if(direction==SDL_MOUSEWHEEL_NORMAL) - delta = 1; - else if(direction==SDL_MOUSEWHEEL_FLIPPED) - delta = -1; - else - return; + int delta = 1; +#if SDL_VERSION_ATLEAST(2, 0, 4) + if(direction==SDL_MOUSEWHEEL_NORMAL) + delta = 1; + else if(direction==SDL_MOUSEWHEEL_FLIPPED) + delta = -1; + else + return; +#endif Locker locker(mutexListeners); _NR<InteractiveObject> selected = getMouseTarget(x, y, DisplayObject::MOUSE_CLICK);
View file
lightspark.tar.xz/src/main.cpp
Changed
@@ -81,11 +81,16 @@ } double getScreenDPI() { +#if SDL_VERSION_ATLEAST(2, 0, 4) float ddpi; float hdpi; float vdpi; SDL_GetDisplayDPI(SDL_GetWindowDisplayIndex(widget),&ddpi,&hdpi,&vdpi); return ddpi; +#else + LOG(LOG_NOT_IMPLEMENTED,"getScreenDPI needs SDL version >= 2.0.4"); + return 96.0; +#endif } };
View file
lightspark.tar.xz/src/parsing/tags.cpp
Changed
@@ -1618,6 +1618,17 @@ unsigned int soundDataLength = h.getLength()-7; unsigned char *tmp = (unsigned char *)alloca(soundDataLength); in.read((char *)tmp, soundDataLength); + unsigned char *tmpp = tmp; + // it seems that adobe allows zeros at the beginning of the sound data + // at least for MP3 we ignore them, otherwise ffmpeg will not work properly + if (SoundFormat == LS_AUDIO_CODEC::MP3) + { + while (*tmpp == 0 && soundDataLength) + { + soundDataLength--; + tmpp++; + } + } SoundData->append(tmp, in.gcount()); SoundData->markFinished(); }
View file
lightspark.tar.xz/src/plugin/plugin.cpp
Changed
@@ -694,7 +694,9 @@ case GDK_SCROLL: { ev.type = SDL_MOUSEWHEEL; +#if SDL_VERSION_ATLEAST(2, 0, 4) ev.wheel.direction = event->scroll.state == GDK_SCROLL_UP ? SDL_MOUSEWHEEL_NORMAL : SDL_MOUSEWHEEL_FLIPPED ; +#endif ev.wheel.x = event->scroll.x; ev.wheel.y = event->scroll.y; ev.wheel.windowID = SDL_GetWindowID(e->widget);
View file
lightspark.tar.xz/src/scripting/abc.cpp
Changed
@@ -57,6 +57,9 @@ # include <llvm/Analysis/Verifier.h> #endif #include <llvm/Transforms/Scalar.h> +#ifdef HAVE_TRANSFORMS_SCALAR_GVN_H +# include <llvm/Transforms/Scalar/GVN.h> +#endif #include "logger.h" #include "swftypes.h" #include <sstream> @@ -453,6 +456,7 @@ builtin->registerBuiltin("navigateToURL","flash.net",_MR(Class<IFunction>::getFunction(m_sys,navigateToURL))); builtin->registerBuiltin("sendToURL","flash.net",_MR(Class<IFunction>::getFunction(m_sys,sendToURL))); + builtin->registerBuiltin("FileReference","flash.net",Class<FileReference>::getRef(m_sys)); builtin->registerBuiltin("LocalConnection","flash.net",Class<LocalConnection>::getRef(m_sys)); builtin->registerBuiltin("NetConnection","flash.net",Class<NetConnection>::getRef(m_sys)); builtin->registerBuiltin("NetGroup","flash.net",Class<NetGroup>::getRef(m_sys)); @@ -531,9 +535,13 @@ if(m_sys->flashMode==SystemState::AIR) { builtin->registerBuiltin("NativeApplication","flash.desktop",Class<NativeApplication>::getRef(m_sys)); + builtin->registerBuiltin("NativeDragManager","flash.desktop",Class<NativeDragManager>::getRef(m_sys)); + builtin->registerBuiltin("InvokeEvent","flash.events",Class<InvokeEvent>::getRef(m_sys)); + builtin->registerBuiltin("NativeDragEvent","flash.events",Class<NativeDragEvent>::getRef(m_sys)); + builtin->registerBuiltin("File","flash.filesystem",Class<ASFile>::getRef(m_sys)); builtin->registerBuiltin("FileStream","flash.filesystem",Class<FileStream>::getRef(m_sys)); } @@ -2178,7 +2186,7 @@ #ifdef PROFILING_SUPPORT if(!m->validProfName) { - m->profName=obj->getClassName()+"::"+mname->qualifiedString(); + m->profName=obj->getClassName()+"::"+mname->qualifiedString(obj->getSystemState()); m->validProfName=true; } #endif
View file
lightspark.tar.xz/src/scripting/flash/desktop/flashdesktop.cpp
Changed
@@ -21,6 +21,7 @@ #include "scripting/class.h" #include "scripting/flash/desktop/flashdesktop.h" +#include "scripting/argconv.h" using namespace std; using namespace lightspark; @@ -60,3 +61,11 @@ return NULL; } + +void NativeDragManager::sinit(Class_base* c) +{ + CLASS_SETUP_NO_CONSTRUCTOR(c, ASObject, CLASS_FINAL | CLASS_SEALED); + REGISTER_GETTER(c,isSupported); +} +ASFUNCTIONBODY_GETTER(NativeDragManager,isSupported); +
View file
lightspark.tar.xz/src/scripting/flash/desktop/flashdesktop.h
Changed
@@ -37,6 +37,15 @@ ASFUNCTION(addEventListener); }; +class NativeDragManager: public ASObject +{ +public: + NativeDragManager(Class_base* c):ASObject(c),isSupported(false){} + static void sinit(Class_base* c); + ASPROPERTY_GETTER(bool,isSupported); +}; + + }; #endif /* SCRIPTING_FLASH_DESKTOP_FLASHDESKTOP_H */
View file
lightspark.tar.xz/src/scripting/flash/display/BitmapData.cpp
Changed
@@ -85,7 +85,7 @@ c->setDeclaredMethodByQName("compare","",Class<IFunction>::getFunction(c->getSystemState(),compare),NORMAL_METHOD,true); c->setDeclaredMethodByQName("applyFilter","",Class<IFunction>::getFunction(c->getSystemState(),applyFilter),NORMAL_METHOD,true); c->setDeclaredMethodByQName("noise","",Class<IFunction>::getFunction(c->getSystemState(),noise),NORMAL_METHOD,true); - + c->setDeclaredMethodByQName("perlinNoise","",Class<IFunction>::getFunction(c->getSystemState(),perlinNoise),NORMAL_METHOD,true); // properties c->setDeclaredMethodByQName("height","",Class<IFunction>::getFunction(c->getSystemState(),_getHeight),GETTER_METHOD,true); c->setDeclaredMethodByQName("rect","",Class<IFunction>::getFunction(c->getSystemState(),getRect),GETTER_METHOD,true); @@ -862,3 +862,19 @@ LOG(LOG_NOT_IMPLEMENTED,"BitmapData.noise not implemented"); return NULL; } +ASFUNCTIONBODY(BitmapData,perlinNoise) +{ + number_t baseX; + number_t baseY; + unsigned int numOctaves; + int randomSeed; + bool stitch; + bool fractalNoise; + unsigned int channelOptions; + bool grayScale; + _NR<Array> offsets; + ARG_UNPACK(baseX)(baseY)(numOctaves)(randomSeed)(stitch) (fractalNoise) (channelOptions, 7) (grayScale, false) (offsets, NullRef); + + LOG(LOG_NOT_IMPLEMENTED,"BitmapData.perlinNoise not implemented"); + return NULL; +}
View file
lightspark.tar.xz/src/scripting/flash/display/BitmapData.h
Changed
@@ -85,6 +85,7 @@ ASFUNCTION(compare); ASFUNCTION(applyFilter); ASFUNCTION(noise); + ASFUNCTION(perlinNoise); }; };
View file
lightspark.tar.xz/src/scripting/flash/events/flashevents.cpp
Changed
@@ -502,6 +502,25 @@ } } +NativeDragEvent::NativeDragEvent(Class_base* c) + : MouseEvent(c) +{ +} + +void NativeDragEvent::sinit(Class_base* c) +{ + CLASS_SETUP(c, MouseEvent, _constructor, CLASS_SEALED); +} + +ASFUNCTIONBODY(NativeDragEvent,_constructor) +{ + //NativeDragEvent* th=static_cast<NativeDragEvent*>(obj); + uint32_t baseClassArgs=imin(argslen,6); + MouseEvent::_constructor(obj,args,baseClassArgs); + LOG(LOG_NOT_IMPLEMENTED,"NativeDragEvent: constructor"); + return NULL; +} + IOErrorEvent::IOErrorEvent(Class_base* c,const tiny_string& t, const std::string& e, int id) : ErrorEvent(c, t,e,id) { }
View file
lightspark.tar.xz/src/scripting/flash/events/flashevents.h
Changed
@@ -295,6 +295,15 @@ ASFUNCTION(updateAfterEvent); }; +class NativeDragEvent: public MouseEvent +{ +public: + NativeDragEvent(Class_base* c); + + static void sinit(Class_base*); + ASFUNCTION(_constructor); +}; + class InvokeEvent: public Event { public:
View file
lightspark.tar.xz/src/scripting/flash/filesystem/flashfilesystem.cpp
Changed
@@ -25,14 +25,17 @@ using namespace lightspark; FileStream::FileStream(Class_base* c): - EventDispatcher(c) + EventDispatcher(c),isSupported(false) { } void FileStream::sinit(Class_base* c) { CLASS_SETUP(c, EventDispatcher, _constructor, CLASS_SEALED); + REGISTER_GETTER(c,isSupported); } +ASFUNCTIONBODY_GETTER(FileStream, isSupported); + ASFUNCTIONBODY(FileStream, _constructor) { EventDispatcher::_constructor(obj, NULL, 0); @@ -40,3 +43,23 @@ LOG(LOG_NOT_IMPLEMENTED,"FileStream is not implemented"); return NULL; } + +ASFile::ASFile(Class_base* c): + FileReference(c),exists(false) +{ +} + +void ASFile::sinit(Class_base* c) +{ + CLASS_SETUP(c, FileReference, _constructor, CLASS_SEALED); + REGISTER_GETTER(c,exists); +} +ASFUNCTIONBODY_GETTER(ASFile, exists); + +ASFUNCTIONBODY(ASFile, _constructor) +{ + FileReference::_constructor(obj, NULL, 0); + //ASFile* th=Class<FileReference>::cast(obj); + LOG(LOG_NOT_IMPLEMENTED,"File is not implemented"); + return NULL; +}
View file
lightspark.tar.xz/src/scripting/flash/filesystem/flashfilesystem.h
Changed
@@ -23,6 +23,7 @@ #include "compat.h" #include "asobject.h" #include "scripting/flash/events/flashevents.h" +#include "scripting/flash/net/flashnet.h" namespace lightspark { @@ -36,6 +37,13 @@ ASPROPERTY_GETTER(bool,isSupported); }; - +class ASFile: public FileReference +{ +public: + ASFile(Class_base* c); + static void sinit(Class_base*); + ASFUNCTION(_constructor); + ASPROPERTY_GETTER(bool,exists); +}; } #endif /* SCRIPTING_FLASH_FILESYSTEM_FLASHFILESYSTEM_H */
View file
lightspark.tar.xz/src/scripting/flash/filters/flashfilters.cpp
Changed
@@ -240,25 +240,36 @@ return cloned; } BlurFilter::BlurFilter(Class_base* c): - BitmapFilter(c) + BitmapFilter(c),blurX(4.0),blurY(4.0),quality(1) { } void BlurFilter::sinit(Class_base* c) { CLASS_SETUP(c, BitmapFilter, _constructor, CLASS_SEALED | CLASS_FINAL); + REGISTER_GETTER_SETTER(c, blurX); + REGISTER_GETTER_SETTER(c, blurY); + REGISTER_GETTER_SETTER(c, quality); } +ASFUNCTIONBODY_GETTER_SETTER(BlurFilter, blurX); +ASFUNCTIONBODY_GETTER_SETTER(BlurFilter, blurY); +ASFUNCTIONBODY_GETTER_SETTER(BlurFilter, quality); ASFUNCTIONBODY(BlurFilter, _constructor) { - //BlurFilter *th = obj->as<BlurFilter>(); + BlurFilter *th = obj->as<BlurFilter>(); + ARG_UNPACK(th->blurX,4.0)(th->blurY,4.0)(th->quality,1); LOG(LOG_NOT_IMPLEMENTED,"BlurFilter is not implemented"); return NULL; } BitmapFilter* BlurFilter::cloneImpl() const { - return Class<BlurFilter>::getInstanceS(getSystemState()); + BlurFilter* cloned = Class<BlurFilter>::getInstanceS(getSystemState()); + cloned->blurX = blurX; + cloned->blurY = blurY; + cloned->quality = quality; + return cloned; } ConvolutionFilter::ConvolutionFilter(Class_base* c):
View file
lightspark.tar.xz/src/scripting/flash/filters/flashfilters.h
Changed
@@ -115,6 +115,9 @@ BlurFilter(Class_base* c); static void sinit(Class_base* c); ASFUNCTION(_constructor); + ASPROPERTY_GETTER_SETTER(number_t, blurX); + ASPROPERTY_GETTER_SETTER(number_t, blurY); + ASPROPERTY_GETTER_SETTER(int, quality); }; class ConvolutionFilter: public BitmapFilter {
View file
lightspark.tar.xz/src/scripting/flash/net/flashnet.cpp
Changed
@@ -2408,6 +2408,7 @@ c->setDeclaredMethodByQName("send","",Class<IFunction>::getFunction(c->getSystemState(),send),NORMAL_METHOD,true); c->setDeclaredMethodByQName("connect","",Class<IFunction>::getFunction(c->getSystemState(),connect),NORMAL_METHOD,true); c->setDeclaredMethodByQName("close","",Class<IFunction>::getFunction(c->getSystemState(),close),NORMAL_METHOD,true); + c->setDeclaredMethodByQName("domain","",Class<IFunction>::getFunction(c->getSystemState(),domain),GETTER_METHOD,true); REGISTER_GETTER(c,isSupported); REGISTER_GETTER_SETTER(c,client); } @@ -2423,6 +2424,12 @@ LOG(LOG_NOT_IMPLEMENTED,"LocalConnection is not implemented"); return NULL; } +ASFUNCTIONBODY(LocalConnection, domain) +{ + //LocalConnection* th=Class<LocalConnection>::cast(obj); + LOG(LOG_NOT_IMPLEMENTED,"LocalConnection::domain is not implemented"); + return abstract_s(obj->getSystemState()); +} ASFUNCTIONBODY(LocalConnection, allowDomain) { //LocalConnection* th=Class<LocalConnection>::cast(obj); @@ -2472,6 +2479,23 @@ return NULL; } +FileReference::FileReference(Class_base* c): + EventDispatcher(c) +{ +} + +void FileReference::sinit(Class_base* c) +{ + CLASS_SETUP(c, EventDispatcher, _constructor, CLASS_SEALED); +} + +ASFUNCTIONBODY(FileReference, _constructor) +{ + EventDispatcher::_constructor(obj, NULL, 0); + //FileReference* th=Class<FileReference>::cast(obj); + LOG(LOG_NOT_IMPLEMENTED,"FileReference is not implemented"); + return NULL; +} ASSocket::ASSocket(Class_base* c): EventDispatcher(c)
View file
lightspark.tar.xz/src/scripting/flash/net/flashnet.h
Changed
@@ -411,6 +411,7 @@ ASFUNCTION(send); ASFUNCTION(connect); ASFUNCTION(close); + ASFUNCTION(domain); ASPROPERTY_GETTER_SETTER(_NR<ASObject>,client); }; @@ -422,6 +423,13 @@ ASFUNCTION(_constructor); }; +class FileReference: public EventDispatcher +{ +public: + FileReference(Class_base* c); + static void sinit(Class_base*); + ASFUNCTION(_constructor); +}; class ASSocket: public EventDispatcher, IDataInput, IDataOutput { public:
View file
lightspark.tar.xz/src/scripting/toplevel/toplevel.cpp
Changed
@@ -308,12 +308,16 @@ for(size_t i=0;i < mi->numArgs();++i) { const Type* t = Type::getTypeFromMultiname(mi->paramTypeName(i), mi->context); + if (!t) + throwError<ReferenceError>(kClassNotFoundError, mi->paramTypeName(i)->qualifiedString(getSystemState())); mi->paramTypes.push_back(t); if(t != Type::anyType) mi->hasExplicitTypes = true; } const Type* t = Type::getTypeFromMultiname(mi->returnTypeName(), mi->context); + if (!t) + throwError<ReferenceError>(kClassNotFoundError, mi->returnTypeName()->qualifiedString(getSystemState())); mi->returnType = t; }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.