unable to use google streetview

Bug #673385 reported by Anand Kumria on 2010-11-10
This bug affects 6 people
Affects Status Importance Assigned to Milestone

Bug Description

Whilst using Google maps to see streeview, I was unable to run the flash file.

Example, look for the Hilton Hotel.


Drag the yellow map to the map marker.

The SWF URL is:


I have received a number of errors messages:

Cause: constructGenericType not implement

Cause: Duplicated body for function

It would be great if Lightspark allowed this to work.

Anand Kumria (wildfire) wrote :
InfraBit (infrabit) wrote :

Google street view would be a great addition, I vote for it (running Gentoo here).

tags: added: websitesupport
Changed in lightspark:
status: New → Confirmed
Matthias Gehre (m-gehre) wrote :

I got it fully working with the patch below.

Please note the commented lines inside the 'if'. I expected that
the newClass instruction should push something back on the stack, but running it with those lines uncommented
gives an assert failture sometimes later in incRef. Someone with more knowledge of the codebase may probably easy spot the issue.

The rational behind the change is the following. With Loader.load() an swf is allowed to load another swf as child. Its clearly stated in the documentation that the child's classes will not override the parents classes. This seems to imply that
attempts by the child to register an already known class is not an error condition (it was handled that way before), but should
be ignored.
(Please forgive the uncleanness of the patch)

=== modified file 'scripting/abc_opcodes.cpp'
--- scripting/abc_opcodes.cpp 2011-04-29 20:23:44 +0000
+++ scripting/abc_opcodes.cpp 2011-05-05 23:41:34 +0000
@@ -2361,14 +2361,26 @@

 void ABCVm::newClass(call_context* th, int n)
- LOG(LOG_CALLS, _("newClass ") << n );
+ LOG(LOG_ERROR, _("newClass ") << n );
  method_info* constructor=&th->context->methods[th->context->instances[n].init];
  int name_index=th->context->instances[n].name;
  const multiname* mname=th->context->getMultiname(name_index,NULL);

- Class_inherit* ret=new Class_inherit(QName(mname->name_s,mname->ns[0].name));
+ QName qname = QName(mname->name_s,mname->ns[0].name);
+ std::map<QName, Class_base*>::iterator i = sys->classes.find(qname);
+ if(i != sys->classes.end())
+ {
+ LOG(LOG_ERROR,"ABCVm::newClass: Class does already exist");
+ /*th->runtime_stack_pop();
+ Class_base* ret = i->second;
+ ret->incRef();
+ th->runtime_stack_push(ret);*/
+ return;
+ }
+ LOG(LOG_ERROR,"Class_inherit from abc_opcodes");
+ Class_inherit* ret=new Class_inherit(qname);

Matthias Gehre (m-gehre) wrote :

I'm sorry, I was mistaken. This does make google street view work. Together with two other changes, this stops google street view from crashing, but it just shows an black box.

Changed in lightspark:
importance: Undecided → Medium

Now Google Street View available via WebGL. Open maps.google.com, click to "Experience WebGL".

Antti Ajanki (aajanki) wrote :

With the current git the scene is shown and it is possible to navigate around.

Known problems include:
- rendering errors, for example the tile boundaries are visible
- sometimes I encounter OpenGL errors and the screen stops updating
- zooming with +/- buttons doesn't work
- advanced features, like the picture browsing are not yet supported
- quite slow, especially when compiled with -O0

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers