Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1542 connectés 

  FORUM HardWare.fr
  Programmation
  C

  utiliser du code LGPL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utiliser du code LGPL

n°1537860
docmaboul
Posté le 03-04-2007 à 15:05:12  profilanswer
 

Bonjour,
 
J'ai une jolie structure qui me sert de "tableau dynamique". Cette structure ne s'alloue pas un bloc mémoire pour stocker ses éléments mais plusieurs blocs afin d'éviter les problèmes de fragmentation.
 
Problème: je veux pouvoir faire un coup de qsort sur le tout mais je ne le peux pas, celui-ci travaillant avec un seul bloc.
Solution: pomper le code de qsort de la glibc pour l'adapter à ma structure "multi-blocs".
 
D'où ma question: est-il conforme avec la licence de réutiliser du code LGPL dans une autre lib LGPL?

mood
Publicité
Posté le 03-04-2007 à 15:05:12  profilanswer
 

n°1537880
rufo
Pas me confondre avec Lycos!
Posté le 03-04-2007 à 15:18:07  profilanswer
 

si tu fais un copier/coller, faut mettre dans le comentaire d'où vient le code, si c'est juste de t'en inspirer, y'a pas de pb, rien à mettre de particulier...

n°1537886
docmaboul
Posté le 03-04-2007 à 15:21:58  profilanswer
 

rufo a écrit :

si tu fais un copier/coller, faut mettre dans le comentaire d'où vient le code, si c'est juste de t'en inspirer, y'a pas de pb, rien à mettre de particulier...


 
Ce serait un gros copier/coller et quelques arrangements pour qu'il choppe les éléments où il faut. Si je vous suis bien, en mettant donc "blablabla code copié depuis la glibc, modifié pour blablabla", c'est en conformité avec la LGPL?

n°1537899
rufo
Pas me confondre avec Lycos!
Posté le 03-04-2007 à 15:30:17  profilanswer
 

oui.

n°1537901
docmaboul
Posté le 03-04-2007 à 15:30:56  profilanswer
 

merci :)

n°1537972
matafan
Posté le 03-04-2007 à 16:45:50  profilanswer
 

Si j'étais toi je me débrouillerait plutôt pour pouvoir utiliser le vrai qsort. Ca dépend de ce que tu veux faire mais il y a plusieurs solutions. L'une d'elles est de ne pas trier directement tes strutures, mais plutôt un tableau de pointeurs vers tes structures. Tu créé le tableau pour l'occasion, tu le trie, tu reconstruit ton tableau de structure en fonction de la liste tirée par qsort.

n°1537999
docmaboul
Posté le 03-04-2007 à 17:14:34  profilanswer
 

Vous n'avez pas compris ce que je fais.
 
En gros, ma structure a cette tronche:
 
struct array_t {
  void *data;
  size_t elts;
  size_t blocs;
};
 
data pointe sur un tableau de pointeurs (chaque pointeur pointe sur un bloc mémoire), elts représente le nombre total d'éléments dans les blocs, et blocs est le nombre de blocs. On va dire qu'on a 1000 elts par bloc pour l'exemple. Pour accéder au xième elt, il me faut l'index du bloc qui le contient (n1) et l'index de l'elt dans le bloc (n2).
n1=x/1000;
n2=x%1000;
 
En clair, les elts de [x, x+1000[ sont dans le bloc d'index x. Comme ces blocs sont rangés dans un tableau de pointeurs, je ne peux pas utiliser l'implémentation traditionnelle de qsort. Simple, non? :D
 
Tout au mieux, je peux trier les éléments d'un bloc ce qui ne sert pas à grand chose. Je pourrais aussi tout copier dans une zone mémoire contigüe, faire le qsort et recopier le résultat dans ma structure. V'la le gachis (pour l'instant, j'utilise une implémentation "naïve" de qsort, ce qui est à peine mieux).


Message édité par docmaboul le 03-04-2007 à 17:15:15

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  utiliser du code LGPL

 

Sujets relatifs
Code de lecteurcomment utiliser cette fonction
Eclipse : différence entre generate "Edit code" & "Editor code"Quelle technologie utiliser pour mon site ?
Pb mon code ne marche pas avec FlashPlayer7[C] Executables différents pour un même code source?
Comment avoir 1000 chansons gratis avec 60 lignes de code?Google summer of code 2007
comment utiliser WebBrowserrecuperer code html depuis le web
Plus de sujets relatifs à : utiliser du code LGPL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR