Fix SpatialFullConvolutionMap bug #521
diff --git a/generic/SpatialFullConvolutionMap.c b/generic/SpatialFullConvolutionMap.c
index b1ebcb8..bbb0282 100644
--- a/generic/SpatialFullConvolutionMap.c
+++ b/generic/SpatialFullConvolutionMap.c
@@ -3,7 +3,7 @@
#else
void THNN_(SpatialFullConvolutionMap_updateOutput)(
- THNNState *state, THTensor *input, THTensor *output, THTensor *weight, THTensor *bias,
+ THNNState *state, THTensor *input, THTensor *output_, THTensor *weight, THTensor *bias,
THTensor *connTable, int nInputPlane, int nOutputPlane,
int dW, int dH)
{
@@ -20,14 +20,14 @@
THArgCheck(input->size[0] >= nInputPlane, 2, "invalid number of input planes");
THTensor_(resize3d)(
- output, nOutputPlane,
+ output_, nOutputPlane,
(input->size[1] - 1) * dH + kH,
(input->size[2] - 1) * dW + kW
);
/* contiguous */
input = THTensor_(newContiguous)(input);
- output = THTensor_(newContiguous)(output);
+ THTensor* output = THTensor_(newContiguous)(output_);
/* get raw pointers */
real *input_data = THTensor_(data)(input);
@@ -80,11 +80,11 @@
/* clean up */
THTensor_(free)(input);
- THTensor_(free)(output);
+ THTensor_(freeCopyTo)(output, output_);
}
void THNN_(SpatialFullConvolutionMap_updateGradInput)(
- THNNState *state, THTensor *input, THTensor *gradOutput, THTensor *gradInput, THTensor *weight, THTensor *bias,
+ THNNState *state, THTensor *input, THTensor *gradOutput, THTensor *gradInput_, THTensor *weight, THTensor *bias,
THTensor *connTable, int nInputPlane, int nOutputPlane,
int dW, int dH)
{
@@ -95,7 +95,7 @@
);
/* contiguous */
- gradInput = THTensor_(newContiguous)(gradInput);
+ THTensor* gradInput = THTensor_(newContiguous)(gradInput_);
gradOutput = THTensor_(newContiguous)(gradOutput);
/* Resize/Zero */
@@ -142,7 +142,7 @@
}
/* clean up */
- THTensor_(free)(gradInput);
+ THTensor_(freeCopyTo)(gradInput, gradInput_);
THTensor_(free)(gradOutput);
}