use long instead of int to match pointer size.