Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# [résolu]segmentation fault xpcom

Envoyé par : niceday

Date : 05/06/2008 11:35

Bonjour, J'ai un plantage dans mon XPCOM que je n'arrive pas à résoudre, je souhaite récupérer une liste de valeur, j'ai simplifié le code mais l'essentiel est là :

code javascript:

function test()
{
 var myXpcom = Components.classes[CID].createInstance(Components.interfaces.IPilotClient);
 var count = new Object();
 var list = new Object();
 myXpcom.GetList(count, list);
}

xpidl :

long GetList(out unsigned long count, [array, size_is(count)] out double list);

code c++ :

NS_IMETHODIMP MYClass::GetList(PRUint32 *count, double **list, PRInt32 *_retval)
{
  *count = 2;
  *list = (double*)nsMemory::Alloc(*count * sizeof(double));
  (*list)[0] = 5;
  (*list)[0] = 7; => Segmentation fault !!!!!!!
  return NS_OK;
 }

Merci beaucoup niceday

# Re: segmentation fault xpcom

Envoyé par : Paul Rouget

Date : 05/06/2008 12:25

Pourquoi as tu un _retval ? Et ton return NS_OK ?

# Re: segmentation fault xpcom

Envoyé par : niceday

Date : 05/06/2008 14:14

Effectivment dans l'exemple j'avais oublié le NS_OK (je l'ai mis à jour). retval me permet de retourner un code d'erreur, je ne l'ai pas implémenté dans l'exemple... Sinon ca te dit quelque chose ?

# Re: segmentation fault xpcom

Envoyé par : Paul Rouget

Date : 05/06/2008 18:27

je ne sais pas, mais en tout cas, ton code n'est pas correct, le _retval est incompatible avec ton IDL.

# Re: [résolu]segmentation fault xpcom

Envoyé par : niceday

Date : 05/06/2008 18:28

Désolé j'avais fait une boulette dans mon code et l'exemple n'était pas representatif ! Merci d'avoir répondu !!!

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.