|
@@ -546,8 +546,7 @@ func go_register_variables(rh C.uintptr_t, trackVarsArray *C.zval) {
|
|
|
fc := r.Context().Value(contextKey).(*FrankenPHPContext)
|
|
|
|
|
|
le := (len(fc.env) + len(r.Header)) * 2
|
|
|
- dynamicVariablesArr := (**C.char)(C.malloc(C.size_t(le) * C.size_t(unsafe.Sizeof((*C.char)(nil)))))
|
|
|
- dynamicVariables := unsafe.Slice(dynamicVariablesArr, le)
|
|
|
+ dynamicVariables := make([]*C.char, le)
|
|
|
|
|
|
var i int
|
|
|
// Add all HTTP headers to env variables
|
|
@@ -572,8 +571,13 @@ func go_register_variables(rh C.uintptr_t, trackVarsArray *C.zval) {
|
|
|
i++
|
|
|
}
|
|
|
|
|
|
+ var dynamicVariablesPtr **C.char = nil
|
|
|
+ if le > 0 {
|
|
|
+ dynamicVariablesPtr = &dynamicVariables[0]
|
|
|
+ }
|
|
|
+
|
|
|
knownVariables := computeKnownVariables(r)
|
|
|
- C.frankenphp_register_bulk_variables(&knownVariables[0], dynamicVariablesArr, C.size_t(le), trackVarsArray)
|
|
|
+ C.frankenphp_register_bulk_variables(&knownVariables[0], dynamicVariablesPtr, C.size_t(le), trackVarsArray)
|
|
|
|
|
|
fc.env = nil
|
|
|
}
|