From 8b8bb2b9ba93ee7c81bda680a7f62bb61531e495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ne=C4=8Dada?= Date: Sat, 2 Mar 2019 20:16:14 +0000 Subject: [PATCH] FinitePointGroup constructor fixes Former-commit-id: c731459d117d7bcfbdaa70bfc66c17fb75b5d933 --- qpms/qpms_c.pyx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/qpms/qpms_c.pyx b/qpms/qpms_c.pyx index a6fb4e2..d96f02f 100644 --- a/qpms/qpms_c.pyx +++ b/qpms/qpms_c.pyx @@ -1112,11 +1112,13 @@ cdef char *make_c_string(pythonstring): ''' bytestring = pythonstring.encode('UTF-8') cdef Py_ssize_t n = len(bytestring) + cdef Py_ssize_t i cdef char *s s = malloc(n+1) if not s: raise MemoryError - s[:] = bytestring + #s[:n] = bytestring # This segfaults; why? + for i in range(n): s[i] = bytestring[i] s[n] = 0 return s @@ -1156,7 +1158,7 @@ cdef class FinitePointGroup: self.G[0].gens = malloc(sizeof(qpms_gmi_t) * self.G[0].ngens) if not self.G[0].gens: raise MemoryError for i in range(self.G[0].ngens): - self.G[0].gens[i] = permindices[info.groupgens[i]] + self.G[0].gens[i] = permindices[info.permgroupgens[i]] self.G[0].permrep = calloc(order, sizeof(char *)) if not self.G[0].permrep: raise MemoryError for i in range(order): @@ -1187,6 +1189,7 @@ cdef class FinitePointGroup: for row in range(dim): for col in range(dim): self.G[0].irreps[iri].m[i*dim*dim + row*dim + col] = irrep[permlist[i]][row,col] + self.G[0].elemlabels = 0 # Elem labels not yet implemented self.owns_data = True def __dealloc__(self):