Vala: Les fonctions qui retournent null et les fonctions qui plantent avec null
Je vais lister sur ce billet les fonctions et opérations qui peuvent générer une erreur de segmentation (segmentation fault) avec Vala. Cette liste sera complétée à l'occasion.
A - Fonction qui plante lorsqu'elle reçoit une chaine non référencée (null):
int.parse(str) si str = null alors un segment fault est généré.
var strB = strA si strA = null et que valac traduit cette affectation par un g_strdup (ce n'est pas systèmatique).
B - Opération qui plante lorsque les bornes sont dépassées:
string[] strA={"abc","def","ghi"}
var strB = strA[5];
C - Fonctions qui retournent une chaine non référencée (null):
substr = str[a:b] si b excéde la longueur de la chaine str, alors substr = null
var strB = str.split(",",2) si str est null ou si le séparateur n'est pas dans str alors strB[1] n'est pas référencé.
var str = hashtable.lookup(key) si key n'est pas trouvé alors str est null.